jMeter接口测试-一个简单http接口的测试案例

注:

1)复杂的测试案例都是在这个简单的测试案例上进行扩展

2)一个子系统建议放在同一个测试计划中,流程测试可以通过线程组区分,便于设定不同的测试数据个数。比较独立的接口,可以统一放在线程组内,顺序完成测试。

3)流程性接口测试:如果要测试的接口可以组成一个流程,执行顺序添加多个http请求的sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。

1. 开发接口测试案例的整体方案:

第一步:分析出测试需求,拿到开发提供的接口说明文档;

第二步:从接口说明文档中设计接口测试用例,包括详细的入参、出参数据,以及明确的格式和检查点。

第三步:和开发一起评审接口测试用例

第四步:结合开发库,准备接口测试案例中的入参数据和出参数据,并整理成csv格式的文件。

第五步:结合接口测试用例和csv格式的数据文档,做接口自动化开发。

2. 接口自动化适用场景

    1)测试开发接口用例,开发自测

    2)回归测试:开发自测通过后纳入回归测试中,配置到持续集成平台自动运行。

3. jMeter工具设计之初是用于性能测试的,它在实现对接口的调用方面已经做的比较成熟,本次使用jMeter工具实现http接口的测试。

1)打开jMeter:下载好jMeter后,双击bin目录下的jmeter.bat

jMeter接口测试-一个简单http接口的测试案例_第1张图片

2)添加线程组(测试计划右键-添加-Threads(Users)):

线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。

线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。

循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本。

jMeter接口测试-一个简单http接口的测试案例_第2张图片

3)添加http cookie管理器(线程组右键-添加-配置元件):

jMeter接口测试-一个简单http接口的测试案例_第3张图片

4)添加HTTP请求默认值(线程组右键-添加-配置元件):当被测系统有唯一的访问域名和端口时,此组件很好用;填写被测系统的域名和端口,以及具体的协议类型。线程组里面的所有sampler的http request可默认此设置。

jMeter接口测试-一个简单http接口的测试案例_第4张图片

jMeter接口测试-一个简单http接口的测试案例_第5张图片

5)添加http Request(线程组右键-添加-Sampler):对于jMeter而言,sampler取样器是与服务器交互的单元,一个取样器通常进行三部分的工作,向服务器发送请求;记录服务器的响应数据;记录相应时间信息。

一个HTTP请求的配置参数介绍如下:

名称:标识一个取样器,一般建议适用有意义的名字,如接口名称。

注释:仅用户记录注释信息。

服务器名称或IP:HTTP请求发送的目标服务器名称和IP地址,可以取用户定义的变量$(host)

端口:目标服务器端口号,可以取用户定义的变量$(port)

协议:向目标服务器发送的HTTP请求时的协议,可以是http(默认)或https

方法:发送HTTP请求的方法,包括GET,POST,HEAD,PUT,OPTIONS,TRACE,DELETE等

Content encoding:内容编码方式,默认iso8859,可以设置UTF-8

路径:目标URL路径(不含服务器地址和端口)

jMeter接口测试-一个简单http接口的测试案例_第6张图片

jMeter接口测试-一个简单http接口的测试案例_第7张图片

6)添加响应断言(被测http request右键-添加-断言):设置检查点,添加对响应结果的正则表达式判断即可。

jMeter接口测试-一个简单http接口的测试案例_第8张图片

jMeter接口测试-一个简单http接口的测试案例_第9张图片

7)添加监听器(线程组右键-添加-监听器):常用图形结果、查看结果树、聚合报告,方便查看运行后的结果。

jMeter接口测试-一个简单http接口的测试案例_第10张图片

jMeter接口测试-一个简单http接口的测试案例_第11张图片

查看结果树:可以定义返回结果的排版,如果JSON格式。

jMeter接口测试-一个简单http接口的测试案例_第12张图片

查看聚合报告:

Label:显示jMeter的每个element(如,http request)都有一个Name属性

#Samples:表示这次测试中一共发出了多少请求,如模拟10个用户,每个用户循环10次,这里就显示100

Average:平均响应时间--默认情况下是单个request的平均响应时间,当使用了Transaction controller时也可以以Transaction为单位显示平均响应时间。

Median:中位数,也就是50%用户的响应时间

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

注:关于90%和50%的并发用户数的含义可参考:http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

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

Throughtput:吞吐量---默认情况下表示每秒的请求数(Request per second),当使用了Transaction Controller时,可以表示类似Loadrunner的Transaction per second数。

KB/Sec:每秒从服务器接收到的数据量,相当于Loadrunner中的Throughtput/Sec

jMeter接口测试-一个简单http接口的测试案例_第13张图片

8)添加用户定义的变量(测试计划右键-添加-配置元件)

可以添加测试服务器的IP地址${_P(host,192.168.1.12)}和端口${_P(port,8080)}

jMeter接口测试-一个简单http接口的测试案例_第14张图片


你可能感兴趣的:(Jmeter接口测试)