一、接口测试基本流程
1、创建线程组
选中“测试计划”点击右键,点击“添加”-“线程(用户)”-“线程组”
线程数:代表模拟1个用户;
RAMP-UP时间(秒):意思是1秒内加载1个线程;
循环次数:执行1次请求;
2、新建Http请求
选中“线程组”点击右键,点击“添加”-“取样器”-“HTTP请求”
3、添加查看结果树
选中“线程组”点击右键,点击“添加”-“监听器”-“察看结果树”
二、参数化
参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些输入使用参数来代替,如登录时利用GET/POST请求方式传递参数的场景,在脚本运行时指定参数的取值范围和规则。
脚本在运行时,根据需要选取不同的参数值作为输入,该方式称为数据驱动测试(Data Driven Test),而参数的取值范围被称为数据池(Data Pool)。
1、函数助手
(1)随机数(_Random)
随机函数用于返回指定最小值和最大值之间的随机数。
(2)随机字符串(_RandomString)
随机字符串函数根据指定的字符长度以及可使用的字符集随机生成随机字符串。
(3)时间函数(_time)
时间函数根据给定的时间格式返回当前时间。
(4)UUID函数
UUID函数可以生成唯一标识码。
(5)counter函数和long Sum函数
Counter函数:这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调用这个函数一次它就会自动加1,它有两个参数,第一个参数是布尔型的,只能设置成 “TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器,可以用于统计每个线程歌执行了多少次。如果是FALSE,那就使用全局计 数器,可以统计出这次测试共运行了多少次。第二个参数是“函数名称”。
Long Sum函数:求和函数
2、CSV数据配置文件
三、关联
所谓关联就是把应用中动态变化返回的数据获取到,把它保存为一个参数,提供给后面需要用到的地方进行使用。
1、JSON提取器
在当前的接口响应结果json串中提取所需内容,作为变量可以在不同的请求中传递使用;
2、正则表达式提取器
正则表达式提取器说明:
引用名称:其他地方引用时的变量名称,可自定义设置,引用方法:${引用名称}
正则表达式:数据提取器,()括号里为你要获取的的值。.代表任意单个字符,+代表匹配多次,?代表匹配结束
模板:用于从找到的匹配项创建字符串的模板。这是一个带有特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:’ $ 1 $ ‘引用组1,’ $ 2 $ ‘引用组2,等等。$ 0 $引用整个表达式匹配的内容。
匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
缺省值:匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 ERROR。
3、Bshell后置处理器
四、集合点
在性能测试的时候,设置集合点是为了实现绝对的并发,测试服务器的承载能力。当所有的线程都达到集合点的时候,才开始发送请求。
模拟用户组的数量是按设置数量分配执行并发,假如模拟用户组的数量设置为5,线程请求总数为10,那么每5个用户会并发执行一次。
五、仅一次控制器
假如登录只需要运行一次,而后面的文件下载需要执行多次,那么这是就需要用到仅一次控制器控制登录请求一次;
六、断言
断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。
七、HTTP请求默认值
该组件可以为我们的http请求设置默认的值。假如,我们创建一个测试计划有很多个请求且都是发送到相同的服务器,我们就可以创建一个HTTP请求默认值,这样我们就可以共同使用默认值,不用重复写多次,如果需要变更也不能修改所有的请求。
如果某个单独的HTTP请求中设置的值与请求默认值中设置的值不一致,Jmeter会选择使用HTTP请求的设置。
注意HTTP请求默认值作用范围,只在同一个线程组内有效,如果有多个线程组的话, 需要分别设置。