jmeter5.4.1设置代理录制脚本并优化(web)

一、前期准备

  1. Windows系统,jmeter软件安装完成(安装过程此处不做讲解,有时间的话会写一篇)
  2. 浏览器(火狐和谷歌均可,下面实践用火狐浏览器)
  3. 本次实践jmeter版本为5.4.1
  4. 可访问互联网的环境,有线或者wifi均可,下面实践用的是有线网络

二、测试过程说明

  1. 本次测试以博主所负责项目的web页面为例
  2. jmeter设置http代理服务器,火狐浏览器添加代理,录制操作过程生成脚本,对生成的接口进行过滤和优化,可进行多线程多并发请求。

三、实战

  1. 启动jmeter,在测试计划中添加http代理服务器;(这里说明一下,老版本的jmeter可以在工作台中添加http代理服务器。新版本的jmeter没有工作台,在测试计划中添加,但功能不会影响。) 
  2. http代理服务器填写端口(未被占用的端口即可)8881,选择目标控制器,最好选为新添加的线程组,方便观察;(目标控制器即为录制结果的展示)

  3. 这样的话jmeter的http代理就设置好了,然后打开火狐浏览器,给浏览器添加代理,Win+R--->ipconfig查看一下本机ip地址,填写到浏览器的http代理框中;需要注意的是代理的端口一定要填写和上一步jmeter中填写的一致8881,点击确认;

     

  4. 浏览器也设置完成之后,就可以启动jmeter的代理服务器了,点击启动按钮;

  5. 弹出页面点击ok即可;

  6. 切换到火狐浏览器页面,输入被测网址,进行操作(流程操作,场景复现等均可),本次实战操作了一个提交的流程;

  7. 操作完成后,停止jmeter代理服务器,若没有后续测试计划,即可把浏览器的网络设置还原回去,取消代理,不然会无法正常访问互联网哦;

  8. 切换到jmeter页面,在测试计划添加察看结果树和聚合报告,可以清晰的查看请求和响应;

  9. 操作到这里,一个简单的录制就完成了,接下来需要对录制过程和脚本进行优化和二次加工;

  10. 在jmeter页面的第2步的目标控制器里,可以看到有很多请求,是录制过程中产生的,其中有一些是图片、js等不符合我们需求的请求,此时我们需要用到排除模式;(大部分有价值的请求为post、get等,当然也可以点击添加建议排除)

  11. 包含模式,添加后可以只抓取包含的请求

  12. 对于请求中的变量,在测试用例设计过程中,需要不同参数多次请求的情况,可以使用jmeter的参数化--函数助手,引用函数来降低测试过程的繁琐性; 

  13. 脚本线程数和循环次数的设置,在线程组页面,可以编辑线程数(并发数,即测试时的用户数量),Ramp-up时间(秒)(加压参数,即几秒内执行完所有的用户线程,例:若设置为1s,线程数设置为100,则表示在1s内完成100次请求),循环次数(执行线程的次数)等,来实现符合压力/性能测试需求的脚本。

四、总结与问题记录

  1. 对于性能/压力测试,录制脚本的方法虽然简单,但是局限性相对大一些,没有手动设置接口请求灵活,jmeter操作功能非常强大,好好研究可以实现很多测试需求;
  2. jmeter设置代理录制app也是一样的道理,设置相同网络和端口来实现;
  3. 打开jmeter的时候,要打开bin文件下的.bat文件,部分用jar打开的话可能会无法启动或者录制脚本;
  4. 遇到jmeter乱码的情况,在这里介绍3种方法,也是我通过经验和借鉴得来的:(1)在http请求中,Content encoding设置为utf-8;(2)在jmeter的bin文件夹中,将jmeter.properties设置encoding为UTF-8(默认为ISO-8859-1);(3)添加后置处理器BeasShell后置处理程序:prev.setDataEncoding("utf-8")
  5. jmeter中的http代理设置完成之后,启动会生成证书,如果无法正常录制或者启动代理服务器,需要将该证书添加到手机/浏览器,使其被信任,方可进行接下来的操作;
  6. 下载了英文版jmeter的小伙伴,可以通过options--choose language更改语言;(因为我忘改了,后来才反应过来)

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>