其他分享
首页 > 其他分享> > Jmeter快速上手之接口测试

Jmeter快速上手之接口测试

作者:互联网

1、前言

压测工具 Jmeter 除了可以做性能测试,还可以做接口测试。当接口测试趋向于自动化方向时,就可以使用很典型的接口自动化测试框架 Jmeter + Ant + Jenkins。

本篇将讲解如何快速使用Jmeter来进行接口测试。

 

2、简介

Jmeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。

它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。

Jmeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,Jmeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,Jmeter 允许使用正则表达式创建断言。

 

官网地址:

https://jmeter.apache.org/

 

3、安装

官网下载地址:

https://jmeter.apache.org/download_jmeter.cgi

 

下载解压包版本即可。

 

注意:需要Java 8+ (JDK 1.8+)以上的支持。

关于 JDK 的安装与配置,可点击 Java-安装 文章进行查阅。

例如本次讲解系统所带的JDK版本为1.8.0_261。

 

例如下载apache-jmeter-5.4.1.zip

 

下载完成后,解压到自己指定的路径里即可。

 

例如:

Windows系统,解压到C盘根目录下。

路径为C:\apache-jmeter-5.4.1

 

Mac系统,解压到/Users/wangmeng目录下。

路径为/Users/wangmeng/apache-jmeter-5.4.1

 

4、环境变量 

4.1、Windows环境 

【我的电脑】右键 ---> 属性 ---> 高级系统设置 ---> 环境变量 ---> 系统变量

新建 JMETER_HOME 值为 C:\apache-jmeter-5.4.1

 

编辑 CLASSPATH 的变量(如果没有则新建),值为

%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar

 

编辑 PATH 新增值为 %JMETER_HOME%\bin

 

保存后,以管理员身份打开命令行,输入jmeter -v

环境变量配置成功

 

4.2、Mac环境 

打开终端,编辑 .bash_profile 文件。

vim .bash_profile

 

添加以下配置:

export JMETER_HOME=/Users/wangmeng/apache-jmeter-5.4.1
export PATH=${PATH}:$JMETER_HOME/bin
export CLASSPATH=:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar

 

保存退出,使 .bash_profile 文件内容生效。

source ~/.bash_profile

 

重新打开终端,输入jmeter -v

环境变量配置成功

 

5、启动程序 

1、打开命令行或终端输入jmeter,即可启动程序(前提已配置成功环境变量)。

 

2、或者打开Jmeter\bin目录下的应用程序来进行启动。

Windows系统,双击jmeter.bat即可。

 

Mac系统,双击jmeter即可。

 

6、目录说明 

 

7、操作示例 

本篇模拟接口请求链接使用 moco 生成。

关于 moco 的部署与使用等,可点击 moco 系列章节进行查阅。

 

1、添加线程组

【测试计划】右键 ---> Add ---> Threads(Users) ---> Thread Group

 

2、设置线程数(并发用户数)与循环次数

本篇为接口测试讲解,模拟一个用户进行一次接口请求,所以用户数和循环次数均为1即可。

 

7.1、Get请求 

接口请求地址:http://localhost:8083/getdemo

如图所示:先使用Postman,访问此接口。

GET请求,2个参数username、password

返回数据为“操作成功”

 

1、添加HTTP请求

【线程组】右键 ---> Add ---> Sampler ---> HTTP Request

 

填写相关配置信息。

方式一:

 

方式二:

 

2、添加响应断言

【demo01】右键 ---> Add ---> Assertions ---> Response Assertion

 

输入断言匹配的内容。

根据示例接口,返回的文本内容若等于“操作成功”,则就算是Pass

 

3、添加断言结果

【demo01】右键 ---> Add ---> Listener ---> Assertion Results

 

4、添加查看结果树

【demo01】右键 ---> Add ---> Listener ---> View Results Tree

 

5、运行脚本

运行方式一:【线程组】右键 ---> Start

 

运行方式二:点击运行按钮即可。

 

6、运行结果

查看断言结果,验证通过,Pass

 

查看结果树,可查看请求与响应数据,验证通过,Pass

 

7.2、Post请求 

接口请求地址:http://localhost:8083/postdemo

如图所示:先使用Postman,访问此接口。

POST请求,2个参数username、password

返回数据为“操作成功”

 

1、添加HTTP请求

【线程组】右键 ---> Add ---> Sampler ---> HTTP Request

 

填写相关配置信息。

 

2、添加响应断言

【demo02】右键 ---> Add ---> Assertions ---> Response Assertion

 

输入断言匹配的内容。

根据示例接口,返回的文本内容若等于“操作成功”,则就算是Pass

 

3、添加断言结果

【demo02】右键 ---> Add ---> Listener ---> Assertion Results

 

4、添加查看结果树

【demo02】右键 ---> Add ---> Listener ---> View Results Tree

 

5、运行脚本

运行方式一:【线程组】右键 ---> Start

 

运行方式二:点击运行按钮即可。 

 

6、运行结果

查看断言结果,验证通过,Pass

 

查看结果树,可查看请求与响应数据,验证通过,Pass 

 

7.3、依赖请求 

有两个接口,接口1执行后返回的数据里有接口2需要用到的请求参数,则执行接口2时,要先执行接口1获取返回的指定数据。

 

接口1请求地址:http://localhost:8083/demo?aaa=123&bbb=456&ccc=789

如图所示:先使用Postman,访问此接口。

GET请求,3个参数aaa、bbb、ccc

返回json数据为:

{

    "mystatus": "操作成功",

    "mytoken": "eyJhbGciOiJIUzI1NiJ9"

}

 

接口2请求地址:http://localhost:8083/demo2

如图所示:先使用Postman,访问此接口。

POST请求,请求头有2个参数Content-Type、mytoken

返回json数据为:

{

    "mystatus": "操作成功",

    "mystatusid": "1"

}

 

发送的json串。

 

1、添加用户参数

接口1和接口2都有参数ccc,且值都是789,可以设置为公共用户变量,方便统一提取。

【线程组】右键 ---> Add ---> Pre Processors ---> User Parameters

 

填写参数ccc与参数值789 

 

2、添加HTTP请求(接口1)

【线程组】右键 ---> Add ---> Sampler ---> HTTP Request

 

填写相关配置信息。

 

(1)添加响应断言

【demo03-1】右键 ---> Add ---> Assertions ---> Response Assertion

 

输入断言匹配的内容。

根据示例接口1,返回的文本内容若包括所指定的“操作成功”,则就算是Pass

 

(2)添加断言结果

【demo03-1】右键 ---> Add ---> Listener ---> Assertion Results

 

(3)添加查看结果树

【demo03-1】右键 ---> Add ---> Listener ---> View Results Tree

 

(4)添加正则表达式提取器

用于提取接口1返回的指定数据,接口2会调用此数据。

【demo03-1】右键 ---> Add ---> Post Processors ---> Regular Expression Extractor

 

填写相关正则表达式信息。

 

(5)添加调试后处理器

方便在调试脚本时实时查看是否正确的提取到了所要的信息。

【demo03-1】右键 ---> Add ---> Post Processors ---> Debug PostProcessor

 

3、添加HTTP头管理器(接口2)

接口2有请求头信息要进行设置,所以要添加HTTP头管理器。

【线程组】右键 ---> Add ---> Config Element ---> HTTP Header Manager

 

填写相关配置信息。

${my_token}为引用正则表达式my_token提取接口1返回的指定值。

 

4、添加HTTP请求(接口2)

【线程组】右键 ---> Add ---> Sampler ---> HTTP Request

 

填写相关配置信息。

        {

            "id":"1",

            "username":"test",

            "password":"123456",

            "ccc":"${ccc}"

        }

 

(1)添加响应断言

【demo03-2】右键 ---> Add ---> Assertions ---> Response Assertion

 

输入断言匹配的内容。

根据示例接口2,返回的文本内容若包括所指定的“操作成功”,则就算是Pass

 

(2)添加断言结果

【demo03-2】右键 ---> Add ---> Listener ---> Assertion Results

 

(3)添加查看结果树

【demo03-2】右键 ---> Add ---> Listener ---> View Results Tree

 

5、运行脚本

运行方式一:【线程组】右键 ---> Start

 

运行方式二:点击运行按钮即可。 

 

6、运行结果

接口1,查看断言结果,验证通过,Pass

 

接口1,查看结果树,可查看请求与响应数据,验证通过,Pass 

 

接口1,查看结果树,正则表达式所提取接口1的返回数据 

 

接口2,查看断言结果,验证通过,Pass 

 

接口2,查看结果树,可查看请求与响应数据,验证通过,Pass 

 

标签:请求,接口,---,Add,添加,右键,上手,Jmeter
来源: https://www.cnblogs.com/alltests/p/15567117.html