接口测试之jmeter

1、接口测试技术栈

(1)HTTP的协议;

(2)执行:工具有PostMan、JMeter;

(3)代码:框架

(4)思想:MockServer

2、jmeter的安装

2.1jmeter的概述

jmeter是100%的java语言开发的,他是免费开源的软件,是非常优秀的性能测试工具和接口测试工具,支持主流协议的测试。

2.1.1jmeter的应用场景

(1)可以做功能测试;

(2)可以做接口测试;

(3)可以做性能测试;

(4)通过JDBC来连接数据库。

2.1.2jmeter的优点

(1)开源:JMeter是一款免费的开源软件,使用它你不需要支付任何费用,因为它的开源性,你也可以根据自己的需求,扩展他的功能;

(2)小巧:占用的资源非常非常少;

(3)功能强化,JMeter设计之初就是做一个简单的web性能测试工具,经过不断的更新拓展,现在可以完成数据库等方面的测试。

2.2jmeter的安装

2.2.1jmeter环境的搭建(java环境搭建)

(1)下载JDK在本地储存盘,并安装;

(2)鼠标右键点击此电脑,进入属性,找到高级系统设置;

 

 

 (3)点击高级系统设置,找到环境变量,点击进入;

 

 

 (4)点击系统变量的新建,变量名:JAVA_HOME;变量值:C:\Program Files\Java\jdk1.8.0_162(这里的变量值为JDK的安装路径,这里以你自己的安装路径为准);

(5)点击系统变量的新建,变量名:CLASSPATH;变量值为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;

 

 

 (6)点击系统变量,找到变量名为path的,然后点击编辑新建变量值:%JAVA_HOME%\bin。

(7)验证环境,打开控制台,输入javac;再输入java -version,查看版本。

 

2.2.2、jmeter的下载

(1)下载地址:https://jmeter.apache.org/download_jmeter.cgi,选择选择apache-jmeter-5.4.3.zip进行下载,然后进入本地进行解压即可。

 (2)打开本地解压的文件,进入到bin目录下,windows系统点击jmeter.bat;linux&mac系统点击jmeter.sh即可启动并进入jmeter。JMeter最新版本:5.4.3, 我们使用的版本是:5.4.1。

2.3jmeter的基本设置

2.3.1语言的设置

 

 

 2.3.2字体的设置

 

 

 2.3.3主题设置

 

 

 

3、jmeter的初始用

3.1保存测试文件

(1)测试计划可以理解为一个项目的顶级目录,可以为根目录,那么在一个测试计划的里面可以有很多的线程组。

 

 

 

 

 

 3.2添加线程组

线程组可以理解为postman测试工具中的collection,那么在一个线程组里面可以存放很多的测试用例(test case)。如添加查询手机号码归属地的线程组。

 

 

 

 

3.3添加测试用例 (HTTP)

(1)填写请求参数时,填写方式如下:

post/put请求:请求参数的数据格式是xml/json数据格式时,请求参数在消息体数据中填写;当请求参数的数据格式是表单的数据格式时请求参数在参数中填写;jmeter中的请求文件上传在文件上传中操作。

(2)HTTP信息头管理器是填写请求头的地方,它在配置件的组件里面,一般将HTTP信息头管理器放在HTTP请求的前面。请求头添加方式如下:

 

 

 

 

 

(3)查看测试结果使用的是:监听器中的“查看结果树”;查看断言结果使用的是监听器中的“断言结果”,断言结果可以选择查看通过断言和不通过断言。

 

 

 

 

 

 

 3.4添加简单控制器

 

 

简单控制器时Jmeter中最简单的一个控制器,具有分组的功能,可以将同一个请求的请求头、测试用例等放在同一组中,统一管理  ,可以防止各个测试用例之间的冲突,但它不具有逻辑控制的功能。

 

 

 

 3.5添加断言

一个测试用例必须得有断言,断言可以理解为实际结果与期望结果的对比。

3.5.1jmeter-plugins-manager-1.6.jar的安装

(1)下载jmeter-plugins-manager-1.6.jar插件,将其放到apache-jmeter-5.4.1文件夹的lib目录里的ext目录下;

安装插件的步骤:

一、在选项中点击插件管理;

二、在available plugins中,搜索需要安装的插件,然后勾选;

三、点击Apply Changes and Restart JMeter;

四、安装成功后,JMeter就会重新启动,那么安装成功的插件就会显示在installed plugins。

(2)打开jmeter,点击选项进入plugins-manager,勾选所需的断言插件【JSON/YAML Plugins(deprecated)】,然后点击Apply changes and Restart JMeter即可。

 

 

 

 

3.5.2添加断言

 

 

 

 3.6添加请求默认值(即postman的数据驱动)

HTTP请求默认值:我们在请求同一个项目的接口时,往往这些接口的部分参数是相同的。这时候,如果接口数量巨大,我们可以通过设置【HTTP请求默认值】来将这些相同的参数值抽取出来统

一设置,而在单个接口中就可以将这些配置空置,jmeter会在执行请求时去读取【HTTP请求默认值】中的参数值。它是在配置元件里面,它的主要价值是,我们可以把请求地址填写在HTTP请求

默认值里面,那么后面的接口就不需要填写请求地址了,它是全局的。

 

 

 

 3.7内容编码

请求参数里面如果有中文,那么在“内容编码”里面填写:utf-8 ,具体如下:

 

 3.8动态参数的处理案例

动态参数有两种处理方式:

(1)使用后置处理器中的正则表达式提取器;后置处理器指的是测试用例执行结束后,专门来处理执行后的事情。

(2)使用后置处理器中的JSON提取器。

如图书管理系统中bookID是变量,在postman中,调用变量的方法是:{{变量}};而在JMeter中,调用变量的方法时:${变量}。

 

4、postman与jmeter的区别

4.1使用方面

(1)公司不管是开发,测试,架构师,大家调试以及验证接口,都是使用的是postman。

4.2结果

(1)postman统计结果是按添加的断言个数为统计结果的,如一个case,10个断言,那么执行统计是10;

(2)jmeter是按测试用例的个数来统计结果的,如一个case,10个断言,那么执行统计是1。

4.3插件方面

(1)jmeter有很丰富的插件,可以对很多的协议进行测试,也可以和很多的主流监控软件进行合并;

(2)jmeter可以组织以及管理上千的测试用例。

4.4动态参数的处理方式

前提条件:假设有一个管理系统,可以增加修改删除查看,每次增加返回的ID都是不一样的,后面查看修改删除都会使用到这个ID

4.4.1PostMan描述

(1)我们先在postman的测试工具里面添加一个测试用例;

(2)测试用例添加成功后,发送请求,在响应数据中获取它的动态参数,获取的方式具体为:

A、在postman的tests里面首先通过var 变量=JSON.parse(responseBody)获取响应数据;

B、获取响应数据成功后,使用pm.environment.set来定义一个全局变量,变量的值就是获取到的动态参数;

 

 

3、在后续的查看修改删除中,使用到这个动态参数的ID,通过调用变量的方式,具体为:{{变量名称}}。

4.4.2JMeter工具的描述

(1)我们先在jmeter的测试工具里面加一个添加的测试用例;

(2)测试用例添加成功后,发送请求,在响应数据中获取它的动态参数,获取的方式具体为:

A、在该测试用例中,右键添加后置处理器中的JSON提取器或者是正则表达式提取器;

B、就以JSON提取器为例,定义一个变量,来获取动态参数的值;

 

 

(3)在后续的查看修改删除中,使用到这个动态参数的ID,通过调用变量的方式,具体为:${变量的值}。

5、jmeter中的session请求流程

在JMeter中,如果一个网站使用的是session来实现的,但是jmeter无法获取登录成功后的sessionid,那么也就导致登录后的请求,都会重定向到登录的页面,也就是说无法验证我是谁,其实在

jmeter中,有一个解决方案,具体方案是:配置元件中的HTTP Cookie管理器 :它内部会记住所有网络请求的cookie信息,并且会让所有的网络请求间的cookie共享。因此只需要在登录成功后,

添加一个HTTP Cookie管理器就可以了。

 

posted @ 2022-01-14 20:52  柒の夜  阅读(411)  评论(0编辑  收藏  举报