接口性能测试(Jmeter)操作总结

以前常用SoapUI来做接口的性能测试,这次用的Jmeter,对需由客户端根据时间戳等登录参数生成随机token值和印签值来发请求的系统,非它莫属了。下面就这次测试的难点和操作注意问题展开总结。

**航空订票APP性能测试以接口压测为主,采用JMETER压测工具,结合NMON监控服务器资源。采用两台测试机,分布式并发压测,在500个并发,800个并发压力下,记录服务器资源的使用情况,并作分析。

1.脚本准备:

测试中,发送的请求体以JSON代码为主,且每个接口要求有token值和印签值(根据请求的body参数生成),因此采取在请求前添加前置处理器BeanShellPreProcessor,来处理token和印签值,下面以“常客登录”为例进行说明。

1)JMETER库添加生成印签的JAR包(目录地址:/lib/ext/),JAR包在Eclipse下生成;

2)线程组下添加配置元件“HTTP信息头管理器”,并设置信息头:名称Content-Type,值为application/json。

3)JMETER请求前添加前置处理器BeanShellPreProcessor,脚本如下:

import com.air.keygen.*;//引用JAR包中写入的方法

String body ="{\n" +

" \"common\": {\n" +

" \"abuild\": \"593\",\n" +

" \"akey\": \"B502CA25CB7944758F349C8187D6456D\",\n" +

"\"aname\": \"com.rytong.hnair.preview\",\n" +

" \"atarget\": \"preview\",\n" +

" \"aver\": \"6.3.0\",\n" +

"\"did\":\"4d0063f74e1c21cd\",\n" +

" \"schannel\": \"AD\",\n" +

" \"slang\": \"zh_CN\",\n" +

"\"sname\": \"samsung/k3gxx/k3g:4.4.2/KOT49H/G900HXXU1ANCI:user/release-keys\",\n" +

" \"stime\": \"1480535569991\",\n" +

" \"sver\": \"4.4.4\",\n" +

" \"szone\": \"+0800\"\n" +

" },\n" +

" \"data\": {\n" +

"\"number\": \"7044002896\",\n" +

"\"pin\": \"123456\",\n" +

"\"toSave\": true\n" +

"  }\n" +

"}";

String airSign = Generator.getKey(body);

vars.put("airSign",airSign);  //输出参数hnairSign

vars.put("body",body);  //输出参数body

3)请求体调用BeanShellPreProcessor脚本生成的参数airSign和body。

如常客登录的请求url为:https://..../login?hnairSign=${airSign},请求体Body Data为:${body}。

2. 其它设置项

1). 本次测试用的https协议,先准备本系统的证书文件(.crt文件),然后导入认证文件至JMETER(菜单-选项-SSL管理器,选择要导入的证书文件),在JMETER的sampler中,协议选择https即可。

2). 参数化处理。本次测试过程中,为了保证数据的完整性和真实性,采用csv文件保存数据文本,然后在请求下添加配置元件CSV Data Set Config,将保存的csv文件路径写入配置文件。请求脚本中需要调用参数的地方,做参数化即可,如:${__CSVRead(D:\HN-APP\预订-查询单程机票.csv,3)}。

3). 随机数据生成。由于一个请求脚本中会多次用到同一个参数,因此,添加一个前置处理器:用户参数,设置名称和值,值调用随机函数随机生成。如:名称idNo,值${_Random(10000000,9999999,idNo},名称mobile,值${_Random(10000000,9999999,mobile)} ,对应的引用脚本修改为:"idNo\": \"TESTA${idNo}\","mobile\": \"189${mobile}\"。

4). 集合点设置。在线程下添加定时器Synchronizing Timer,设置并发用户数即可。

3.分布式压测

1)测试环境准备。本次采用两台测试机分布式压测,两台机在同一网段,先准备好两台机的Jmeter版本及JDK版本一致,避免不必要的错误,将测试脚本和参数化文件,分别放到相同的目录下。

2)参数设置。环境准备好后,先准备一台机做主机,一台做从机,在主机端的jmeter的bin文件中,用记事本打开jmeter.properies文件,找到remote_hosts并设置值为从机的IP,如:remote_hosts=192.198.0.26,默认端口号为1099,

3)分布式运行。保存好设置后,先运行从机的jmeter-sever.bat,再运行主机的的jmeter.bat,在菜单运行下方的远程启动下,可以查看到从机和主机的IP,此时可以根据并发情况,分别选择一台机或两台机同时进行测试。

时间: 2024-12-30 10:48:53

接口性能测试(Jmeter)操作总结的相关文章

Jmeter Http接口性能测试

Jmeter Http接口性能测试 1.      启动Jmeter Jmeter下载解压即可使用,Jmeter启动,点击D:\ProgramFiles\jmeter\apache-jmeter-2.8\bin下的jmeter.bat就可以了. 2.      添加线程组 如下图添加线程组 线程组相当于loadrunner的vuser,这里配置线程组的各项内容.主要有以下几点需要配置: 1)线程数:设置发送请求的线程数目. 2)Ramp-up period: 就是总共设定的线程数据在多长时间内启

JMeter深入进阶性能测试体系,接口性能测试,各领域企业实战

jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以.jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在linux/windows/macos上都可以使用. ??jmeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).

jmeter简单的接口性能测试

原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一. 本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整性能测试脚本.最终执行性能测试并分析性能测试结果. 运行环境为Windows 10系统,JDK版

jmeter实现服务器端后台接口性能测试

实现目的 在进行服务器端后台接口性能测试时,需要连接到Linux服务器端,然后通过命令调用socket接口,这个过程就需要用到jmeter的SSH Command取样器实现了. 脚本实现 设置CSV Data Set ConFig配置元件,参数化测试数据 设置SSH Command取样器,连接Linux后台,调用命令对socket接口进行性能测试 原文地址:https://www.cnblogs.com/jun-zi/p/12043514.html

接口性能测试方案 白皮书 V1.0

一. 性能测试术语解释 1. 响应时间 响应时间即从应用系统发出请求开始,到客户端接收到最后一个字节数据为止所消耗的时间.响应时间按软件的特点再可以细分,如对于一个 C/S 软件的响应时间可以细分为网络传输时间.应用服务器处理时间.数据库服务器处理时间.另外客户端自身也存在着解析时间.界面绘制呈现时间等. 响应时间主要站在客户端角度来看的一个性能指标,它是用户最关心.并且容易感知到的一个性能指标. 2. 吞吐率 吞吐率指单位时间内系统处理用户的请求数,从业务角度看,吞吐率可以用每秒请求数.每秒事

C#接口性能测试--计算执行时间

在做程序的时候,肯定会遇到给他人提供接口,或者使用他人接口的地方.对于一个开发者来说,不管是提供给他人的接口还是,自己提供给他人的接口.都要进行测试. 对于很多的测试,需要详细的记录 该接口的时间范围,比如 该接口的性能为   10ms 100ms的地方. 既然要了解每个接口的性能,该测试不是为了 测试接口的正确性,只是在测试正确性的时候 同时,记录一下该接口的执行时间. 最近,因为要开发一个新项目,而且新项目中会用到旧系统的接口.所以需要对旧系统提供的接口进行测试,进而决定,里面的接口是否需要

使用jmeter进行性能测试-Jmeter教程及技巧汇总 (转)

为什么使用jmeter, 它免费开源, 不断发展, 功能逐渐强大. 可以做功能,负载, 性能测试.一套脚本可以同时用于功能和性能测试.Jmeter 有着众多的插件开发者, 支持多种的测试协议. 一 .Jmeter 使用入门教程(快速入门) 如果您熟悉英语, 可以选择阅读tutorialpoint的教程.  或浏览汉化中的[史上最完整Jmeter教程]. 您也可以继续浏览站长收集的如下资料.  1. Jmeter 快速入门教程(一)  什么是jmeter 及 google plugin介绍 (强大

jmeter操作数据库

Jmeter操作MySQL 1.导入jdbc的jar包 Jmeter本身不能直接连接mysql,所以要导入第三方jar包(mysql-connector-java-5.1.7-bin)来连接mysql 2.配置mysql连接-----添加JDBC Connection Configuration PS: jmeter数据库驱动列表 数据库 驱动 数据库url mysql com.mysql.jdbc.Driver jdbc:mysql://host:port/{dbname}?allowMult

jmeter操作数据库和分布式、nogui方式运行

1. jmeter 压测.看结果 tps/qps 服务端每秒处理的请求数 越大越好 throughput 响应时间 服务端处理请求的时间 越小越好 average 2.jmeter操作数据库 jmeter操作数据库 1.添加jdbc配置,写好mysql的连接信息.账号密码 jdbc:mysql://ip:3306/jxz?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true 2.添加连接数据库的jar包 oracle j