Jmeter学习------实践接口测试
1、添加线程组
右键测试计划–创建线程组
接口自动化------Jmeter实践

线程组页面的相关概念:
(1)线程数:虚拟用户数,设置多少用户就是设置多少线程数
(2)Ramp-Up Period(in seconds)准备时长:设置的虚拟用户数需要多久全部启动;如果线程数5,准备时长1S,那么1s 启动5个线程,也就是5个/s
(3)循环次数:每个线程发送请求的次数。如果线程数为10,循环次数是10,那么每个线程发送10次请求,总请求数=10*10=100,如果勾选了“永远”,则所有线程会一直发送请求,直到选择停止运行
(4)Delay Thread creation until needed:直到需要时延迟线程的创建
接口自动化------Jmeter实践

2、添加HTTP请求
右键“线程组”----添加sample样本—HTTP请求
接口自动化------Jmeter实践

注意填写访问IP地址和端口
一般请求的方式常用POST、GET等
请求数据格式:根据接口文档的格式
接口自动化------Jmeter实践

3、查看结果树----给线程组添加的监听
将每个HTTP请求的响应数据输入到断言控制面板中
接口自动化------Jmeter实践

查看结果数:主要查看三部分
(1)取样器结果
(2)请求:看请求的数据是否正常
(3)响应数据:响应的结果是否正常,是否按照接口需求文档来
接口自动化------Jmeter实践
接口自动化------Jmeter实践
接口自动化------Jmeter实践

接口自动化------Jmeter实践

4、给HTTP请求设置断言:元件Response Assertion
利用返回的响应代码来作为断言的条件,检查测试中得到的响应数据等是否符合预期
以下是利用响应代码来断言结果
接口自动化------Jmeter实践
接口自动化------Jmeter实践

APPly to:适用范围
Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
Main sample only:仅作用于父节点取样器
Sub-samples only:仅作用于子节点取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)

要测试的响应字段:要检查的项
Text Response响应文本
Response Code响应代码
Response Message响应信息
Response Hearders响应头部
Request Hearders:响应头部
URL Sampled:URL样本
Documeng(text):测试文件
Ignore status:忽略返回的响应报文状态码
Request Data:请求数据
模式匹配规则:
Contains包括:返回结果包括你指定的内容
Matches匹配:(好像跟Equals查不多,弄不明白有什么区别)
Equals等于:返回结果与你指定结果一致
子串Substring:返回结果是指定结果的字串
否:不进行匹配
或:

测试的模式:
可以添加多个,按钮【添加】、【删除】是进行指定内容的管理

5、设置默认请求—设置配置元件
IP和端口默认设置之后,在线程组中添加的请求则不需要再次设置对应ip和端口了

接口自动化------Jmeter实践
接口自动化------Jmeter实践

6、关于发送请求的请求体说明
请求体的格式
Content-Type常见的有:
application/json;charset=UTF-8
text/xml;charset=UTF-8
application/x-www-form-urlencoded -----------图片上传
multipart/form-data
(1)application/json;charset=UTF-8格式的请求:
1、添加http信息头管理器:添加Content-Type Parkingwang-Client-Source
2、在http请求中,把请求数据放在Body Data中
(2)text/xml;charset=UTF-8
1、添加http信息头管理器:添加Content-Type
2、在http请求中,把请求数据放在Body Data中
(3)multipart/form-data
1、添加http信息头管理器:添加Content-Type
2、在http请求中,把请求数据放在Parameter中
(4)application/x-www-form-urlencoded
图片上传操作的前提是登录。因此在进行上传操作的http请求前面,必须得有登录的请求。
1、登录的操作:
a: 添加http信息头管理器:添加Content-Type
b: 在http请求中,把请求数据放在Parameter中
(5)图片上传的操作:
a: 添加http信息头管理器:添加Content-Type,cookie
b: 在http请求中,

  1. Basic选项卡中:
    勾选Use multipart/form-data for POST.
    在parameter标签中,查看request中的参数名(不用写文件名称的那个参数,那个参数在Files upload中写)
    在Files upload标签中,填写文件名称:图片的地址和图片名;参数名称:查看request中的参数名;MIME类型:image/png
    2)Advanced选项卡
    在Implementation中选择“java”
    如果不这样设置 ,会报503错误: 缺少参数或参数错误,未找到图片url

7、参数化设置
(1)利用用户自定义变量-----配置元件
参数的值只能单个,不能多个,然后将参数写到HTTP的请求体中
接口自动化------Jmeter实践

参数名可以自定义,参数值则输入合法的数据作为测试
接口自动化------Jmeter实践

将参数带上$符作为Body Data的入参,间接获取对应的值,测试注册接口通过!!

接口自动化------Jmeter实践

(2)利用函数助手—测试登录接口:用户名和密码(MD5加密)
以下测试用户名仍使用自定义变量,密码使用函数生成的MD5加密参数,然后执行接口,查看结果数-----查看对应http响应结果的数据
接口自动化------Jmeter实践

接口自动化------Jmeter实践

8、接口依赖-------登录接口右键添加–后置处理器–正则表达式提取器
本测试场景:新增博文时,如果无用户名和密码时,则需要先获取用户名和密码
结果树------获取单个数据—根据响应的结果
接口自动化------Jmeter实践

有先后顺序,在下一个接口依赖之前就要获取,在新增博文之前,在登录接口中定义规则
(1)提取userid
接口自动化------Jmeter实践

(2)提取token
接口自动化------Jmeter实践

引用名称:可以自定义设置,引用的方法:${引用名称}
正则表达式:数据提取器,()括号里的为你要获取的值,相当于取边界值,如上”userid": 23474,正则表达式为”userid": (.?),
说明:正则使用re模块
a
代表匹配前一个字符0次1次或多次(贪婪性:尽量多的去匹配)
a
?代表最少匹配之前的a–0次或多次(抑制贪婪)----没有匹配到,结果是空
.代表号之前的内容匹配一次或多次(直接使用
不可以)
?匹配0次或则1次(单独使用则贪婪,匹配一次,和其他一起使用则是抑制作用)
模板:从找到的匹配项创建字符串的模板。语法:11引用组1,22引用组2等。00引用整个表达式匹配的内容
匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0是随机,1是第一个,2是第二个,以此类推;若只要获取到匹配的第一个值,那么填写1
缺省值:匹配失败是的默认值,可以不写,就是空;若用户后续逻辑判断,那么可写ERROR或者Not Found
9、新建博文—依赖登录接口:以下Body data中的参数来自于正则定义获取的参数,关于格式是根据接口返回的数据来
接口自动化------Jmeter实践

9、Thread Group—>右键–>sample–>Debug Sample调试工具
该调试工具会把我们自定义的变量输出在response data中,便于我们查看参数获取的值是否正常获取,且获取正确,可以作为调试的记录
这里查看到我们的Userid、Token、Articleid
接口自动化------Jmeter实践

10、查询博文–get方法,直接在URL后拼接参数
接口自动化------Jmeter实践

11、批量查询时–把多个参数写在URL后,参数来自于Debug Sample调试工具
接口自动化------Jmeter实践

12、批量删除博文----参照接口文档以及对应获取的参数
接口自动化------Jmeter实践

相关文章:

  • 2022-01-30
  • 2021-05-14
  • 2021-12-31
  • 2021-10-08
  • 2021-05-17
  • 2021-08-22
猜你喜欢
  • 2021-06-27
  • 2022-12-23
  • 2021-11-09
  • 2021-11-10
相关资源
相似解决方案