Jmeter做接口测试

Jmeter

举例:以XC-9000添加计划任务、手动运行、删除计划任务为例

一、测试步骤实现

1.添加http请求:

计划名可以是项目名称,这里改为XC-9000接口测试”

创建一个线程组,命名为计划任务

创建一个http请求,命名为添加计划任务

在接口文档里面获取信息,填写协议类型、服务器名称或ipHTTP请求方法、路径,端口号默认,因为是post请求方法涉及请求体,需要填写请求体信息,因为请求体是表单的形式所以填写在参数里面,也没有要求特定的请求头。具体填写如下:

 

2.添加察看结果树:

       在线程组里面右键选择添加->监听器->察看结果树,如果成功获取在察看结果树->响应数据里面会显示正确的响应报文。

 

3.断言

1)响应断言:

①测试字段

A.响应文本就是响应body

B.响应代码:responsecode例如“200”,“401

C.响应信息:“ok”也就是message

       我们没有响应代码和信息,所以我们选择响应文本

②匹配规则

A.包含是说我们响应是否包含某个内容,包含和字符串的区别为是否支持正值表达式(包含包括)

B.匹配和相等差不多,只是匹配支持正值表达式

       我们选择包括

③点击测试模式添加预期结果:

 

2Json断言

①字段说明:

assert json path exists:需要断言的json表达式

Additionally assert value:如果要根据值去断言,请勾选

Match as regular expression:如果要根据正则表达式去断言,请勾选

Expected Value:期望值

Expect null:如果期望是 null 则勾选

Invert assertion:取反

 

正则表达式提取器:

引用名称:即参数名称,这个自己定义,在后面时可用

正则表达式: 正则表达式中()括起来的部分就是要提取的。.代表任意字符,+代表出现任意次,后面加?。

模板:$1$代表只有一组数据

匹配数字:0代表随机取值,-1代表全部取值,通常情况下填0,如果在LR中,取出的值是一个数组,还得处理一下,LR11版本用一个随机的函数就可以不用写大段的代码来处理数组

缺省值:如果参数没有取得到值,那默认给一个值让它取

 

4.测试用例的实现:

①测试数据跟参数有关系,首先在wps里面创建excel表格,在表格第一行书写表头信息,包含title,入参数,expect,本次请求共有三个入参数,他们是tasknameisdisablelevelcreatortriggerscommandsdirname

②标题格式为数据+预期结果

③将所有入参值按照用例要求填入相应位置

④根据接口文档返回参数填写expect

⑤保存为csv文档形式

 

 

⑥在请求内添加一个配置原件->CSVData Set Config原件读取。

⑦文件名直接将刚刚填写好的获取”添加任务.csv”文件导入。

⑧文件编码只需要在乱码的情况填写,在这里我们不填写。

⑨变量名称不写,如果我们不写就是按照csv文件第一行作为变量名称。

⑩因为上面没有填写变量名称所以忽略首行填写false

⑪分隔符允许带引号?,一般情况不允许带引号,特殊情况允许,填写false

⑫遇到文件结束符再次循环?在所有文件运行完了后不再运行所以我们选择false,再循环就填写true

⑬遇到文件结束符停止线程?我们运行完了后就不再往下了,所以填写ture,否则则填写false

 

5.关联

点击access_token前置请求右键选择后置处理器(请求发完后执行)->json提取器。在变量名上填写全局变量名taskid(桥名称),在JSON路径表达式里面填写$.taskId(桥左边)。将手动运行请求内的路径的taskid改成${taskid}(桥的右边)进行全局变量的调用。

 

 

 6.countertime函数:

     

${__counter(True,counter)}

 

${__time(yyyy-MM-dd HH:mm:ss,time)}

posted @ 2021-07-14 20:14  hao_guo  阅读(204)  评论(0编辑  收藏  举报