接口测试之Jmeter
一、安装环境
1、下载jmeter,解压缩
2、安装java环境
二、jmeter的作用优点和缺点
作用:
1、接口测试
2、性能测试:内在 ---- 程序的算法
3、压力测试:外在 --- 外在负责
4、web自动化测试
5、数据库测试
6、JAVA程序测试
优点:
1、开源、免费
2、支持多协议
3、小巧
4、功能强大
缺点:
1、不支持 IP 欺骗
2、不支持前端测试
三、Jmeter组件:线程组
进程:一个正在执行的程序就对应一个进程
线程:进程中的执行线索(一个进程有多个执行线索)
线程组:按照线程性质对线程进程分组
并发执行:多个线程同时执行 特点:执行结束的顺序和线程的启动顺序不一定一致
顺序执行:按照线程的启动顺序挨个执行
三者关系:进程有多个线程,线程组可以有多个线程
进程----测试计划 线程组----线程组 线程----线程组属性的线程
默认情况下,线程组中的线程是并发执行的
每一个线程都要执行组内的http请求
设置线程组顺序执行:勾选测试计划的第一个复选框(独立运行每个线程组)
可以使用http请求默认值 抽取共同的ip端口号 协议 编码集 等信息
测试计划--->右击添加 配置元件--->http请求默认值
线程组属性:
属性1:线程数---模拟用户数
属性2:时间值---在指定时间内启动所有线程
属性3:循环数---单个用户访问次数
调度器
1)循环次数设置为永远
2)设置启动延迟x和持续时间y
在x秒后访问服务器,并且持续y秒
3)设置启动时间M和结束时间N
在M时开始访问,在N时结束
注意:2和3实现不能同时使用,否则矛盾了(会优先使用上面的)
四、Jmeter组件:参数化概述
参数化就是动态的获取并设置数据
比如执行批量操作时,批量插入或批量删除,之前数据都是手写的,每执行完都需要修改一次,效率太低
参数化就是可以以程序代替人工获取并设置数据:安全+高效
五、Jmeter组件:参数化实现之CSV Data Set Config
通过这个组件可以动态获取并设置数据,实现类似批量添加操作(执行一次,将多条数据插入到数据库)
1、编写添加框架,设置循环次数为3
JSON数据格式固定,值先不写
2、编写一个外部的文本文档,存储要添加的三条数据
每一行数据对应数据库一条记录,不同字段之间使用英文,分隔
3、Jmeter添加一个参数化组件:
CSV Data Set Config,每次循环时都读取外部文档的一行数据,再将4个字段分别设置进提交的JSON数据中。
4、将CSV解析的数据设置进Json格式的请求报文,语法$(变量名)
六、Jmeter组件:线程组实现高级
Set Up 线程组:最先执行的线程组 (加载程序主体执行所需的资源)
Tear Down线程组:最后执行的线程组 (程序正式关闭之前,可以将数据保存进内存)