目录
变更记录 |
||
变更日期 |
变更说明 |
附件 |
2021-02-26 |
【TestReport名称优化】 将html报告名称index.html 改为动态变化的(不然每次生成的报告Html报告都会把原有的报告覆盖) 详细见【五-8】 |
|
演示文档(2021-02-25) |
||
1 |
Jmeter 脚本 |
|
2 |
build.xml 文件 |
|
3 |
PPT |
|
4 |
CSV文件 |
一、JMeter简介
二、JMeter 基本使用
1. 启动Jmeter
MAC启动Jmeter,进入到jmeter的bin目录下 ,运行以下命令
sh jmeter
2. 设置为中文版(根据个人喜好)
进入jmeter -bin目录下,找到jmeter.properties 文件,设置language=zh_CN,设置完需要重启Jmeter
3. 配置元件-Http Cookie管理器
配置元件(Config Element)用于提供对静态数据配置的支持,Http Cookie管理器可以用来对 HTTP Request Sampler 的 cookie 进行管理
如果想要Jmeter像浏览器一样,保存cookie,那么可以借助“配置元件-Http Cookie管理器”,
(1)若没有 Http Cookie管理器:
(2)当我们第一个请求,有了cookie之后,那么“Http Cookie管理器”就会保存这个cookie,给后面的请求用,就像在浏览器里的用法一样
4.断言
比较重要的断言主要有:响应断言(Response Assertion)、大小断言(Size Assertion)、持续时间断言(Duration Assertion)
(1)响应断言(Response Assertion)
①响应文本(Test Response)断言
断言内容 --相当于预期结果
响应中看到的数据 --相当于实际结果
执行脚本后,若实际结果与预期结果不一致,则断言失败
②响应代码(Response Code)断言
设置断言,假设Response Code预期应为500
实际运行结果,Response Code 为200
则断言失败
(2)大小断言(Size Assertion)
验证生成的响应的大小,以字节为单位,这也是吞吐量参数,当我们加负载的时候,若网站处理不过来时,就可能出现有的数据没有加载出来,这时的就不会返回完整的字节大小,当我们加负载时,我们也会参考这个参数,看看是否完全加载出来
(3)持续时间断言(Duration Assertion)-主要用来验证性能指标
当我们在断言中,设置为1000时,代表最大耗时不能超过1000ms
这边为了演示断言出错,持续时间故意设置比较短,方便查看效果
断言失败,并给出提示
通过“监听器-用表格查看结果”来看下这个sample的持续时间
5.接口关联(Json提取器&正则表达式提取器)
我们在进行接口测试时,一般会有业务场景的关联性,接口关联就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。
最常见的比如登录的接口会返回一个token,便于之后其他接口调用时来认证身份,那么这个时候,我们就需要通过接口关联来实现参数传递,最常用的方法有两种,一个是Json提取器,一个是正则表达式提取器
(1)Json 提取器
我们先来看下登录接口返回参数中,是否能把pytoken这个值取到,其中$表示根元素,图中$.data.pyToken为Json路径表达式
然后在登录接口里添加后置处理器-json提取器,用json path表达式取到得值,放在pyToken这个变量里
Names of created variables :接收值的变量名,自定义
JSON Path expression: json path表达式
Match No.(0 for Random):1 代表匹配获取到的第一个值,我们这边只有一个值(0表示随机;n取第几个匹配值;-1匹配所有。若只要获取到匹配的第一个值,则填写1)
Default Values: 缺省值,匹配不到值的时候取该值,可写error也可不写