Bootstrap

Jmeter接口自动化

目录

变更记录变更日期变更说明附件2021-02-26【TestReport名称优化】将html报告名称index.html 改为动态变化的(不然每次生成的报告Html报告都会把原有的报告覆盖)详细见【五-8】📎build.xml

一、JMeter简介

二、JMeter 基本使用

1. 启动Jmeter

2. 设置为中文版(根据个人喜好)

3. 配置元件-Http Cookie管理器

4.断言

5.接口关联(Json提取器&正则表达式提取器)

6.Jmeter数据驱动

7.JDBC Request

8.函数助手

9.BeanShell

10.Jmeter事物/模块控制器

三、Ant简介

四、Jenkins介绍及安装配置

五、Jmeter自动化测试的配置

1. 原理

2. Jmeter.property配置

3. Ant配置

4. Jenkins 配置-相关插件安装

5. 邮件通知配置 

6. Ant build.xml 文件

6. 运行-看结果

7. 配置过程中遇到的问题总结

8. 分享中提到的关于TestReport的名称优化


变更记录

变更日期

变更说明

附件

2021-02-26

【TestReport名称优化】

将html报告名称index.html 改为动态变化的(不然每次生成的报告Html报告都会把原有的报告覆盖)

详细见【五-8】

📎build.xml

演示文档(2021-02-25)

1

Jmeter 脚本

📎testDemo.jmx

2

build.xml 文件

📎build.xml

3

PPT

📎Jmeter+Ant+Jenkins接口自动化测试-20210225.pptx

4

CSV文件

📎计数器演示.csv📎jmeter数据驱动演示.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也可不写

;