学习Jmeter记录

官网下载的Jmeter5.1的包,Ubuntu控制台运行./jmeter.sh即可运行。简体中文版。

在了解常用元件后,再记录一些常用手段

1.集合点,瞬间施压,峰值测试

在添加->定时器->同步定时器,可以设置让一定数量的线程于同一时刻发起的请求。

2.参数化,不同输入参数

可以添加->配置元件->CSV数据文件设置,关于CSV,一种格式 :

属性值1,属性值2,属性值3

数据1,数据2,数据3

... ...

3.响应断言,根据返回结果判断响应是否正确

可以“添加->断言->响应断言”,在“添加->监听->断言结果”设置自动判断

4.结果显示

可以“添加->监听->查看结果树”,聚合报告,图形结果。

5.插件扩展

想试验监控CPU、内存资源的插件,安装使用Plugins manager,搜索standard

ServerAgent.zip 下载: https://github.com/undera/perfmon-agent

关于控件:https://www.cnblogs.com/guoyuanping/p/8284320.html

ServerAgent.zip在服务器端解压可用,运行startAgent.sh/startAgent.bat,就在本地机器上尝试了一下,生成资源监控曲线图。

6.线程组执行顺序

在创建线程组时,可选择不同选项,setUp和tearDown,含义和Junit中一样,也可以选择修改“测试计划”选项:“独立运行每一个线程组”

https://blog.csdn.net/liletong12_28/article/details/100915970

 

7. 关于逻辑控制器:

只能在"线程组"中添加,在尝试的过程中发现逻辑控制器要求填入函数表达式判断真假,但光用函数生成器生成的

${__jexl3(${变量名}==xxxxxxx,)}不管用,添加了单引号:${__jexl3('${变量名}'=='xxxxxxx',)} 才运行成功。

 

“取样器”的“高级”选项中有设置代理访问网络,正好公司里上网用的就是代理。

 

Jmeter分布式

https://blog.csdn.net/cyjs1988/article/details/80267475

分布式集群测试:个人理解就是:一台机器(主机server)  拖  N台机器(从机agent)一起跑测试用例。避免单台电脑无法满足测试并发的要求。

原理是主机把测试用例“发”给从机Jmeter进程进行执行,只发用例,所以涉及CSV文件,或者导入jar包的操作,需要在从机上先把文件copy好,绝对路径要一样。

翻了同类型资料,实践如下:

关闭主、从机的防火墙:sudo ufw disable     (Ubuntu系统   enable:开启  status:查看状态)

1. 主机和从机的Java、Jmeter版本配置尽量一样,否则可能出一些问题(我用的两台机,Java配置1.8_xxx,小版本上不太一样,但实际测试一个Demo,没影响;Jmeter5.1)

2. 运行主机Jmeter/bin文件夹下 create-rmi-keystore.sh,生成rmi_keystore.jks文件,copy到从机的Jmeter/bin文件夹下。

3. 修改主、从机的jmeter.properties文件字段:server.rmi.ssl.disable=true,并将注释符去掉

4. 修改主机jmeter.properties文件字段:remote_hosts=从机IP[:1099 ] (1099是默认端口可以不写,可以在主、从机jmeter.properties改)

5. 从机控制台运行  jmeter-server  -D  Java.rmi.server.hostname=从机IP

6. 主机可以启动GUI,运行jmeter.sh,打开写好的测试计划Demo,点击运行->远程启动...;

    又或者控制台运行 jmeter -n -t 测试脚本绝对路径  -R  从机IP1, 从机IP2 -l 测试结果存储路径

但我第六步失败了,查网上资料,看到从机jmeter.server.log报错,

java.rmi.ConnectException: Connection refused to host: 127.0.1.1; 

参考了以下博主文章,在主机的system.properties添加  java.rmi.server.hostname=本地IP,终于运行成功。

主机同样需要指明被从机访问的地址。(尝试后发现在从机jmeter.properties文件字段:remote_hosts添加主机IP是没用的)

https://www.cnblogs.com/dreamanddead/p/why-should-you-set-hostname-in-jmeter-distribute-test.html

执行结果中,察看结果树里果然没有响应数据可看,但是试验的“响应断言”和“断言结果”依旧可以正常工作

接口如下:

响应断言:

断言结果:

察看结果树:

 

关于录制脚本:

使用HTTP代理服务器,设置端口,在Request Filter里可以用正则表达式匹配过滤。过滤掉css、png等请求。

目标控制器:存放录制脚本(simple)的线程组

点击启动,会询问CA证书产生,点击OK确定。

关于添加证书:https://www.cnblogs.com/salyes/p/12202180.html

证书需要添加到录制脚本用的浏览器中,同时浏览器还要设置代理。文章里显示windows电脑的话,还要添加到本地电脑里,用Ubuntu试验时,只添加到浏览器中也能录制。

如果是手机要添加证书的话,把证书adb push到手机中,设置中进行安装。当然应该也要设置代理。关于这一点使用Fiddler时倒是操作过。

感觉还是手动制作脚本更好一些。反正录制的脚本也要修正。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值