Jmeter元件执行顺序
执行顺序:9、10、7、6、2、1、3、4、5、11 、8
Aggregate Report聚合报告
- 线程组右键→>监听器->聚合报告
- 作用域
- 所有数据写入一个文件 -> 文件名、仅错误日志、配置
- 结果展示 -> 数据解读,在性能场景设计时,再次讲
在监听器中,所有元件,写入文件功能,写的内容都是相同的
监听器中,查看结果树元件的,仅错误日志,勾选后,只会显示错误的响应
日志配置功能,不能写动态变量数据
接口文档:1、docx文本、pdf
2、api文档===开放的api文档、第三方接口
3、swagger
公司不提供接口文档,怎么做?==抓包
课程:服务器开放的接口,进行接口性能测试服务器性能
fiddler、Charles、wireshark、F12、httpwatch==前端抓包(用户端抓包)
服务器端抓包?===tcpdump命令抓包
需要root权限,安装命令:yum install tcpdump -y
抓包命令:tcpdump -i ens33 -s0 -w deac.cap
===========录制方式写脚本===========
http代理服务器
HTTP(S) Test Script Recorder HTTP代理录制
- 代理服务器
- 步骤
1、先建一个线程组
2、测试计划 > 右键 > 非测试元件 > http代理服务器
3、修改 目标控制器为 第1步添加到线程组的名称
-----request filtering过滤器
4、启动
用代理上网在浏览器中填ip和端口,这个ip和端口是代理服务器的ip和服务器端口
代理服务器与代理的区别
代理夫妻群是提供网络代理能力的服务器,它有自己的ip和外服务用的端口
代理:使用者
======Jmeter脚本优化======
变量化
- UserDefinedVariable用户定义变量
> 线程组右键添加 -> 配置元件 -> 用户定义变量
- 1、变量命名规则:字母、数字、下划线,大小写敏感(java规则)
- 2、变量引用:${}
====== 用户定义的变量 vs 用户参数====== 100%掌握
前置处理器 与 取样器的优先级?
1、用户定义变量 ,在启动运行时,获取一次值,在运行过程中,不再获取值
用户参数,在启动时,获取一次值,在运行过程中,也动态获取值
2、用户定义变量,全局变量----可以在多个线程组之间使用
UserParameter用户参数,局部变量----只能在当前线程组中使用
先执行前置处理器,再执行取样器,所以用户参数,会在取样器之前执行
用户参数和用户定义变量,做变量时,看起来效果相同
用户参数:3个人同时请求,手机号变了,1个人循环3次,手机号也变了
======面试,要注册10000个用户,用这10000个用户进行登录,进行接口性能测试?
(使用用户参数,勾选每次迭代更新一次)
>函数
Tools >函数助手
- _counter()计数器函数
- _digest()加密函数(MD5)
- _intSum()整数求和
- _P()、
- _property()获取属性函数
- _setProperty()设置属性
- _threadNum获取线程数
- _time()获取当前时间函数
> s{_time(yyy-MM-dd HH.mm:ss:SSs,)}
- timeShift()时间位移
> ${_timeShift(yyy-MM-dd HH.mm:ss:sss,,p2dt4h6m10.234s,,)}
- _RandomData()随机日期
> ${_RandomDate(yyyyMMdd,20201018,20201028,,)}
- _dateTimeCovert()时间戳转本地时间
> ${_dateTimeConvert(1599723255000,,yyyyMMdd HHmmss,)}