本文主要介绍在jmeter中测试接口:主要从以下几个方面进行说明:

1、jmeter简介

2、jmeter怎么做接口测试

3、jmeter进行参数化的几种形式

4、jmeter中处理乱码方法

5、jmeter中如何做接口关联

6、jmeter中如何做断言

7、jmeter中如何简单的做压测

1、1 jmeter

jmeter是Apache公司基于java开发的一款开源压力测试工具,体积小,功能全,是一个轻量级的测试工具,运行时,必须安装jdk,jmeter是免安装的。

需要进入到jmeter的bin目录下,打开jmeter.bat,就开启了jmeter

2、1jmeter中做http接口的步骤

步骤一:添加线程组(右键测试计划--添加--Thread--线程组)

步骤二:创建一个http请求(右键线程组--添加-Sample--http请求)

步骤三、在http请求中写入接口url,路径,请求方式,参数

步骤四:添加结果树(右键线程组--添加--监听器--察看结果树)

 

步骤五:运行脚本,察看结果

2、2  接口中参数是文件类型的

如果接口要上传文件,在jmeter这样进行设置:

参数传值时,从Parameters切换到File Upload

点击浏览,选择要上传的文件

参数名称:输入接口文档中要传入的参数名称

如果运行时,提示MIME不能为空,就给该参数传一个“”test“”的值

3、1jmeter进行参数化的几种形式

参数化是干什么的?就是在调用接口的时候,有入参,参数是经常变换的,就需要把每次都变的值提前设置好一些值,这样调用的时候就不用每次都修改了。

 第一种:函数 助手

点击选项--函数助手对话框,进入到函数助手的页面

在函数助手的页面中,功能选择—Random,范围内最大值和最小值,都输入完成后

 

 点击生成,生成一个函数字符串,

 

复制函数${__Random(1,9999,)}到入参位置

 

 设置循环次数为5次,点击允许,查看结果,显示允许5次

第二种,用户自定义函数

线程组右键--添加--配置元件--用户定义的变量

然后写key和value就可以了,key就是这个参数的名称,也就是你在脚本里面取的值,value就是具体值了。

在取参数化的值的时候,使用${name}这样去取值,name就是你取的变量名称。

第三种,从文件中读取数据,进行参数化

文件读取就是事先写好一些数据,然后从文件中读取,支持txt和csv格式的文件

步骤一:右键http请求--添加--配置元件--csv Data Set Config

步骤二:创建一个存储数据的.txt或csv结尾的文件,里面以列的形式存放参数的值,如果有多个参数,就用空格或逗号进行隔开

步骤三:设置csv Data Set Config中的参数值

各个字段详解:

:参数化文件的路径,一般是文件的绝对路径;如果只写文件名的话,就把文件放在jmeter的bin目录下

:参数的字段的名称:如果有多个参数,就用逗号隔开,传入参数的时候就用${name}形式进行传参

:如果有多个参数需要参数化的话,中间用逗号隔开或者空格,和参数化文件中的一致

:假如参数用完后,要不要从头开始取,true是从头取,false是不从头取

:参数用完成后,要不要停止,和recyle on EOF 配合使用

步骤四:都设置完成后,在接口中是如何传参的,${name},name就是csv Data Set Config定义的参数名称

4、1 jmeter中处理乱码方法

第一种:jmeter返回中文乱码

1、在jmeterbin目录下,找到jmeter的配置文件,jmeter.properties,然后把sampleresult.default.encoding =utf-8  加到最下面

2、重新打开jmeter

第二种:jmeter bodydata里面的中文乱码

1、在jmeterbin目录下,找到jmeter的配置文件,jmeter.properties,然后把jsyntaxtextarea.font.family=Hack加到最下面

2.重新打开jmeter

第三种:向数据库中插入数据时,中文若是乱码,就设置content-encoding=utf-8

 

 5、1 jmeter中如何做接口关联

 关联就是获取返回值,然后保存起来,给别的请求使用,或者做一些其他的处理

比如登录接口和抽奖接口相关联,选设置登录接口,在登录接口处添加关联

设置json path,获取几个参数名,就添加几个json path postProcessor

 

各个字段的详解:

:关联的参数名称

:从当前接口中获取关联的参数值:接口返回值是,获取userID的值=$.login_info.userid

在抽奖接口中使用登录接口返回的userid sign

 6、jmeter中如何做断言

何为断言?它是用来检查返回结果对不对的

用来验证结果是否正确,如果正确的话,就代表这个请求的返回是正确的,如果没有的话,就代表这个请求的结果和我们预期的不一致,我们就可以通过断言来检查返回结果,测试是否通过

设置如下:

右键http请求--添加响应断言

设置响应断言,模式匹配规则选择“”包括“

添加一个响应结果里面返回的数据”

 7、1压力测试场景设置

一般在做压力测试的时候,分单场景和混合场景,单场景就是压测单个接口,多场景就是有业务流程的情况下,多接口一起来做操作

单场景:一个请求就可以了

混合场景:多个请求

压测时间:一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或一周,根据具体情况来定

 

7、2压测结果的查看

右键--添加聚合报告

7、3 查看结果

 

Lable:每个jmeter的element都有一个name属性

#samples:表示这次请求中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间,默认情况下单个request的平均响应时间

Media:50%用户的响应时间

90%Line:90%用户的响应时间

min:最小的响应时间

Max:最大的响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量--默认情况下表示每秒完成的请求数

KB/SEC :每秒从服务器端接收到的数据量

TPS越大越好,响应时间越小越好