接口测试(Jmeter)

 实例:https://www.cnblogs.com/wintest/p/11185898.html

 

1、入参:必填字段、非必填字段、正常入参,异常入参(超出长度/特殊字符/传参为{}、null等)、非空、非零、包含、不存在、精确匹配
2、出参:正确/异常(是否定义全面存在遗漏)、数据排序、分页、值的校验、值+类型的校验、值精确匹配(JS数据校验===是校验值和数据类型,==只是校验值)、不包含或不包含某个字段或内容
3、业务数据:
4、接口之间:多个接口
5、DB验证

 

使用工具:脚本与数据分离、脚本维护、前置数据及结果校验等问题上不能如意

使用框架:

 

断言方法

1、响应断言:响应文本、响应状态码、响应信息、响应头……

忽略状态:一个请求有多个响应断言,第一个响应断言选中此项,当第一个响应断言失败时可以忽略此响应结果,继续进行下一个断言。如果下一个断言成功则还是判定事务是成功的

2、JSON断言:

3、比较断言:

4、大小断言:断言返回数据的大小

 

断言规则

Contains(包含)、Matches(匹配)、Equals(相等或一致)、Substring(子串)

包括 和 Substring(字符串)的区别:“包括”可写正则,“字符串”的测试模式里不能写正则表达式

(1)包括:响应内容包含需要匹配的内容即代表响应成功,支持正则表达式。
(2)匹配:响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。
(3)字符串:响应内容包含需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
(4)相等:响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,不支持正则表达式
(5)否:相当于取反,如果结果为true,勾上否就是false
(6)或者:如果不想用AND连接(所有的模式都必须匹配,断言才算成功),用OR选项可以用于将多个断言模式进行OR连接(只要一个模式匹配,断言就是成功的)

 

参数化:

1、使用 CSV Data Set Config 将 json 数据参数化:线程组->"添加" -> 配置元件-> CSV Data Set Config(CSV数据文件设置) 

转:https://my.oschina.net/u/2315260/blog/3071739

 2、

 

1、主要元件及作用域

(1)测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器
(2)线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
(3)取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。
(4)配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。影响其作用范围内的所有元件。
(5)前置处理器:负责在请求之前工作,常用来修改请求的设置。在其作用范围内的每一个sampler元件之前执行。
(6)定时器:负责定义请求之间的延迟间隔。在其作用范围内的每一个sampler有效
(7)后置处理器:负责在请求之后工作,常用获取返回的值。在其作用范围内的每一个sampler元件之后执行。
(8)断言:用来判断请求响应的结果是否如用户所期望的。在其作用范围内的对每一个sampler元件执行后的结果进行校验。
(9)监听器:负责收集测试结果,同时确定结果显示的方式。在其作用范围内对每一个sampler元件的信息收集并呈现。

2、元件执行顺序:配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器
3、注意事项:
(1)前置处理器、后置处理器和断言等组件只能对取样器起作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。
(2)如果在同一作用域内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行。

4、流程:测试计划---线程组---HTTP Cookie管理器---Http请求默认值---Sampler(HTTP请求)---断言---监听器(查看结果树、图形结果、聚合报告等)

5、步骤:

(1)右键点击Test Plan->添加->线程(用户)->线程组
(2)右键线程组->添加->配置元件->HTTP Cookie管理器
(3)右键线程组->添加->配置元件->HTTP请求默认值
(4)右键线程组->添加->Sampler->HTTP请求
(5)右键HTTP请求->添加->断言->响应断言
(6)线程组 ->右键添加 ->监听器 ->察看结果树。一般还会一并添加图形结果、聚合报告

 6、JMeter执行结果保存到本地:

(1)修改安装目录\bin中的jmeter.properties文件,并保存

  配置jmeter.save相关属性,即将以下属性的前面#删除掉
  jmeter.save.saveservice.data_type=true
  jmeter.save.saveservice.label=true
  jmeter.save.saveservice.response_code=true
  # response_data is not currently supported for CSV output
  jmeter.save.saveservice.response_data=false
  # Save ResponseData for failed samples
  jmeter.save.saveservice.response_data.on_error=false
  jmeter.save.saveservice.response_message=true
  jmeter.save.saveservice.successful=true
  jmeter.save.saveservice.thread_name=true
  jmeter.save.saveservice.time=true
  jmeter.save.saveservice.subresults=true
  jmeter.save.saveservice.assertions=true
  jmeter.save.saveservice.latency=true

(2)bin目录---命令行执行:   jmeter -n -t D:/HTTP Request.jmx -l testplan/result/result.txt -e -o testplan/webreport

  testplan/RedisLock.jmx 为测试计划文件路径
  testplan/result/result.txt 为测试结果文件路径
  testplan/webreport 为web报告保存路径。

 

JMeter命令执行时报错:https://www.jianshu.com/p/25ca33857be2

“WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.”

regedit---打开注册表---找到HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft---右键单击权限,然后更改Users权限为完全控制
 

 

 备注:

1、史上最全的最通俗易懂的-jmeter调试错误全集:https://blog.csdn.net/pengjiangchun/article/details/105381557
2、jmeter实现接口关联的两种方式:正则表达式提取器和json提取器看这篇就够了:https://www.cnblogs.com/csmashang/p/12659093.html
3、转:https://www.cnblogs.com/csmashang/p/12762177.html

 

posted @ 2020-07-30 14:06  lindamo  阅读(319)  评论(0)    收藏  举报