1、接口测试方法

1.1什么是接口测试?

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

1.2.准备数据

获得测试URL中需要用的参数名称及值的获取方式。

获得各请求的方法、IP、测试URL、测试header、测试body及判断基准

1.2.1 测试实施

将测试用例中的各项写入软件中。

(1)创建线程组

java接口压力测试性能要求 接口测试和压力测试_HTTP

(2)修改线程组名称

java接口压力测试性能要求 接口测试和压力测试_java接口压力测试性能要求_02

3)为线程组添加元件

1.HTTP Cookie管理器 
因为很多web网站都是需要登录后才可以进行操作,登录后产生的Cookie能够验证用户身份,在用软件进行测试时,需要通过验证,所以我们需要添加此管理器管理Cookie,它的值被整个线程共享(也可以被整个测试计划共享), Cookie在浏览器中取得。 

java接口压力测试性能要求 接口测试和压力测试_HTTP_03

2.HTTP 请求默认值 
测试用例中每个接口的共同值可以用“HTTP 请求默认值”元件统计设置,省去每次请求都要填写的麻烦,它的值被整个线程共享(也可以被整个测试计划共享)。 

java接口压力测试性能要求 接口测试和压力测试_线程组_04

3.用户定义的变量 
将后续用到的变量添加到“用户定义的变量”,后续操作只需引用变量名称即可,它的值被整个线程共享(也可以被整个测试计划共享)。 

java接口压力测试性能要求 接口测试和压力测试_线程组_05

java接口压力测试性能要求 接口测试和压力测试_线程组_06

4.HTTP请求 
发送http请求需要用的元件。

java接口压力测试性能要求 接口测试和压力测试_测试计划_07

java接口压力测试性能要求 接口测试和压力测试_线程组_08

 5.HTTP信息头管理器 
发送http请求需要加入信息头时用此元件,如线程组中的所有请求均需要信息头,则可将此管理器升级为整个线程组共享或者整个测试计划共享。 

java接口压力测试性能要求 接口测试和压力测试_HTTP_09

java接口压力测试性能要求 接口测试和压力测试_java接口压力测试性能要求_10

 6.响应断言 
发送请求后,需要通过比对响应结果是够符合判断基准来判断某条测试是否ok,通过人为判断是可行的,但是当请求数量较大时,人为判断效率低下,添加“响应断言” 能够提高效率(判断基准有多个时,可以添加多个断言)。 

java接口压力测试性能要求 接口测试和压力测试_HTTP_11

java接口压力测试性能要求 接口测试和压力测试_java接口压力测试性能要求_12

 7.察看结果树 
用于查看测试结果。

java接口压力测试性能要求 接口测试和压力测试_测试计划_13

8.其他元件 
(1)正则表达式提取器 
可将某次响应返回数据中某些信息提取出来,用于后续操作。 
(2)Debug Sampler 
用于调试整个测试 
(3)CSV Data Set Config 
通过文件进行参数化的一个元件。

(4)开始测试

添加好各种元件及数据后,可进行测试,通过察看结果树察看各请求测试结果。

java接口压力测试性能要求 接口测试和压力测试_java接口压力测试性能要求_14

2. 压力测试方法

(1)线程组

java接口压力测试性能要求 接口测试和压力测试_HTTP_15

(2)Constant Throughput Timer(固定吞吐量控制器)

java接口压力测试性能要求 接口测试和压力测试_java接口压力测试性能要求_16

(3)聚合报告

java接口压力测试性能要求 接口测试和压力测试_测试计划_17

(4)监听器

java接口压力测试性能要求 接口测试和压力测试_线程组_18

 监听器jp@gc –PerfMon Metrics Collector 

java接口压力测试性能要求 接口测试和压力测试_测试计划_19

(5)使用非GUI界面运行压力测试

java接口压力测试性能要求 接口测试和压力测试_测试计划_20

非GUI压力测试步骤:

在GUI界面设置并发数、测试时间等,添加各元件,保存测试计划,并关闭软件;

使用非GUI界面,用指令启动压力测试; 
指令例如:D:\Program Files\apache-jmeter-3.1\bin>jmeter -n -t testplan.jmx -l listener.jtl

打开jmeter.bat,在聚合报告元件中载入“listener.jtl”,查看聚合报告;

在监视器中中载入“listener.jtl”,查看各曲线图。