Jmeter优点:
1.开源, 免费 2.跨平台 3.支持多协议 4.小巧 5.功能强大
缺点:
1.不支持ip欺骗 2.使用jmeter无法验证JS程序,也无法验证页面UI ,所以需要 selenium 配合来完成web2.0 应用的测试
1.获取接口
eg:学院-查询所有
请求方法:GET
请求地址:http://127.0.0.1:8000/api/departments/
2.线程组相关
进程:正在运行的程序
线程:是进程中的执行线索
线程组:进程中有许多线索,为了方便管理,可以对线程进行性质分组,分组的结果就是线程组。
ps:三者关系,一个进程可以包含多个线程组,一个线程组可以包含多个线程
eg:迅雷下载电影
喜剧片:西红柿首富,大话西游
恐怖片:贞子,咒怨
3.并发和顺序执行
顺序执行:👇
4.setUp线程组 和 tearDown线程组
5.线程组设置细节
线程数:模拟用户的个数
Ramp_Up:程序准备时间 --- 测试性能
循环次数:每个用户循环次数 (ps:勾选永远,一直循环线程)
调度器:1.持续时间(勾选永远,在持续时间内循环)
2.启动时间:进程延迟启动时间
6.复用封装--》http请求默认值
请求数据里相同的数据都存入 --》http请求默认值(线程组--》配置元件)===被复用内容的封装
7.新增接口--》信息头管理器
8.参数化
当数据量比较大时,就需要使用参数化
1.用户定义变量
2.csv数据文件设置
3.用户参数
4,函数
参数化--》用户定义变量
调用格式: ${变量名}
参数化--》CSV批量添加
csv 叫做【逗号分割值】,是一种简洁且常见的数据存储格式。存储语法如下:
字段用逗号隔开👇。注意,保存编码集使用utf-8
参数化--》用户参数 (了解)
用户参数步骤:
在http请求 右击--》前置处理器--》用户参数 --》添加变量和添加用户)👇
引用变量👇
有几个用户就需要填写几个线程数👇
参数化--函数
1,_counter
点击函数助手对话框--》选择一个功能(_counter)👇
2. _random 函数
3. _time 函数
9.直连数据库
添加架包,才有直连数据库的功能
全部设置好,直接在【查看结果树】里面点击运行,查看结果
结果在百度上搜索
变量名称的前缀来保存数据了
最后查看【查看结果树】里面的请求和响应
10.响应断言
断言:让程序代替人工判断响应结果是否符合预期
分类:
1.响应断言:断言状态码和响应体
2.大小断言:判断响应内容的字节长度
3.断言持续时间:判断响应时间
响应断言-响应文本(断言状态码和响应体)
响应断言-响应代码(断言状态码和响应体)
数据库数据【 增 改 】状态码为201 或者200
大小断言(判断响应内容的字节长度)
ps:
持续时间断言(判断响应时间)
11.逻辑控制器
如果(if)控制器
通过参数化可以实现单个接口的功能测试,而接口测试过程中,除了单个接口功能测试之外,还会测试接口业务实现,所谓业务,就是一套完整的业务逻辑或流程,这就必须要使用到逻辑控制器和关联
1.先设一个变量
2.添加逻辑控制器,引用变量进行判断
3.http请求正常输入参数
4.查看结果树查看请求和响应即可
forreach逻辑控制器
需求:有一组关键字【hello,python,测试】使用用户定义的变量存储,要依次取出,并在百度搜索
1.添加用户变量,设置变量名
2.设置forrach 逻辑控制器的数据
3,http参数填写完整
4.查看结果树里面去查看对应的数据即可
循环逻辑控制器
循环逻辑控制器,单独控制每一个线程。
13.关联xpath后置提取器
关联即是 把上一个接口的响应数据的部分值 当作下一个接口的参数
第二个请求在路径中引用。再去查看结果树里面去查看数据
14.关联--》正则表达式提取器
15,跨越线程组传值
全局变量 & 局部变量
设置两个独立线程组,测试计划--》勾选独立运行