当前位置:文档之家› Jmeter多接口测试性能测试

Jmeter多接口测试性能测试

一、接口业务流程1、获取token接口http://192.168.1.4:9900/rest/getToken/2、获取图片链接口http://192.168.1.4:9900/regist/getImagePath/?token=89bd9d88f4f3421c9e639dfab0c a423c&type=fql返回数据:{"msg": "\u6210\u529f", "code": 0, "detail": {"image_path":"/images/regist/20160822/img1471837595.25.jpg"}}3、获取图片验证码接口http://192.168.1.4:9900/images/regist/20160822/img1471850521.18.jpg4、获取注册结果接口http://192.168.1.4:9900/regist/imageView/?imagecode=zds4&phone=182********&t oken=89bd9d88f4f3421c9e639dfab0ca423c&type=fql二、JMETER的使用1、基本操作1.1、新增测试计划新增线程组,接着在该线程组下方新增4个“HTTP请求”(添加-Sampler-HTTP请求),再在该线程组下方添加“察看结果树”(添加-监听器察看结果树)。

也可以在每个HTTP请求下方添加“察看结果树”,方便找到需要正则或参数化的数据。

一个完整的测试计划诞生了,如下图2.1所示图2.11.2、配置HTTP请求以上图中的“HTTP请求01”为例进行说明。

在HTTP请求窗口中的Basic标签页面上输入服务器名称或IP、端口号和路径(路径URL地址端口号后面的),其他默认,如下图2.2-1所示。

此时可以执行下然后在当前的HTTP请求01的察看结果树里检查接口是否能正常访问(如下图2.2-2所示)。

图2.2-1图2.2-21.3、使用正则表达式还是以上图2.2-1中的“HTTP请求01”为例进行说明。

因为这个接口会得到一个动态值,而且这个动态值会被其他接口使用。

在上图 2.2-2中得到一个响应数据:{"msg": "\u6210\u529f", "code": 0, "detail": {"token": "a53b93507c9d4f3fa43de4a44073bbb6"}}。

在使用第二个接口(HTTP请求02)时需要一个参数值token,而这个值必须调用第一个接口后才能获取到。

如果让其他接口使用这个动态值,那么我们就需要在第一个接口(HTTP 请求01)上使用正则表达式来获取这个返回值。

A、首先在第一个“HTTP请求01”上点击添加后置处理器-正则表达式提取器,如下图3.3-1所示图3.3-1B、在下图3.3-2中输入“引用名称”(自定义数据名称,在其他接口中会用到)、“正则表达式”、“模板”、“匹配数字(0代表随机)”,其他默认。

图3.3-2说明:正则表达式可以看做是LR中的手动关联,从“察看结果树”-“响应数据”区域找到返回值:{"token": "a53b93507c9d4f3fa43de4a44073bbb6"}。

这条字符串就是需要关联的,所以正则表达式输入为:"token": "(.+?)"。

其他的不解释,照写即可,哈哈。

完成以上设置后运行下JMETER,在“察看结果树”区域察看结果是否正确(绿色表示正确)。

C、在第二个接口(获取图片地址)中需要这个正则后的数据,此时在“HTTP请求2”的Basic标签页面的Parameters区域添加接口参数(token和type),其中token值使用接口1中的正则表达式中的变量名(token),此token值为${token},如下图3.3-3所示。

最后保存并执行,如果HTTP请求2(获取图片地址)的响应数据显示为绿色则表示设置成功。

图3.3-3同理,HTTP请求3(获取验证码)接口中需要动态生成的图片地址,那么就需要设置HTTP请求2(获取图片地址)接口中的正则表达式,然后再在HTTP请求3接口中的URL 地址上引用接口2的正则变量即可。

1.4、变量参数化此业务流程是首先获取token然后得到图片地址,接着获得验证码,最后得出注册信息。

在HTTP请求4(获取注册信息)的接口信息中发现多了一个手机号(phone)。

如果想得到不同手机号对应的注册信息,那么就需要对接口4的手机号进行变量参数化。

A、在HTTP请求4上添加“配置元件-CSV Data Set Config”,如下图4.4-1所示图4.4-1B、元件添加成功后,使用TXT新建一个CSV文件(注意,这里必须使用TXT文件然后另存为CSV文件,不然执行时会报错全是乱码)。

在CSV文件中输入多个值(这里是手机号,一行显示一条手机号,我在CSV文件中写了5个不同的手机号),然后保存CSV文件(记住存放路径)。

C、新建CSV文件后,切换到刚才添加成的CSV Data Set Config窗口,在“Filename”输入CSV的存放地址(包括CSV文件名称),在Variable Names(comma-elimited)中输入自定义的变量名称(此变量会用到HTTP请求4的参数值中,我这里设置为phonenum),其他默认,如下图4.4-2所示图4.4-2D、现在切换到HTTP请求4(获取注册信息)窗口中,在Parameters标签页面中添加4个参数(因为此接口带4个参数)imagecode、token、type、phone。

参数值分别是zds4、${token(HTTP请求1中的正则表达式)、fql、${phonenum}(刚刚设置的参数化),如下图4.4-3所示图4.4-31.5、循环次数我们之前在HTTP请求4(获取注册信息)中设置了手机号的参数化(CSV文件中包含5个不同的手机号),现在返回到当前测试计划下的线程组窗口中。

在线程属性区域输入线程数、Ramp-Up Periond(in seconds)和循环次数即可。

最后运行查看当前线程组下的察看结果树结果是否正常。

1.6、并发之集合点可以在线程组的任意位置添加集合点。

集合点可以和线程组的“线程属性”和“调度器”结合使用,主要是为了保证所有的用户能到达集合点并能发生并发。

添加方法:1、鼠标右键-定时器-Synchronizing Timer,如下图所示2、接着在Synchronizing Timer界面中的“Number of Simulated Users to Grounp by:”输入并发数(表示当X个用户到达此集合点时就开始并发),如下图所示注意:集合点中的并发数最好能被线程组中设置的用户数整除(线程用户数%并发数=0),不然跑脚本会报错。

集合点在线程组中可以随意拖动,放在请求前面。

1.7、测试计划组成图1在上图1中可以禁用单个HTTP请求中的“察看结果树”(如下图2所示),这样看上去更直观。

因为我们需要的是最终结果。

图22、资源监控2.1、监控Tomcat服务使用jmeter的tomcat监视器功能,可以通过向tomcat的status页面发送get请求,得到资源使用信息,然后转换为只直观的图像方式,这样的话,就可以监视到服务器的资源使用情况,不过需要注意的是,要使用tomcat监视器功能,就必须在要监视的服务器上装有tomcat。

1、配置/conf/tomcat-users.xml,内容如下<?xml version='1.0' encoding='utf-8'?><tomcat-users><role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><user username="admin" password="admin" roles="manager-gui"/><user username="admin" password="admin" roles="manager-script"/><user username="admin" password="admin" roles="manager-jmx"/><user username="admin" password="admin" roles="manager-status"/> </tomcat-users>2、配置/conf/context.xml,内容如下<Context><WatchedResource>WEB-INF/web.xml</WatchedResource><Manager pathname="/manager" debug="0" privileged="true" docBase="/home/tomcat-9900/webapps/manager" /><Valve className="etConnectionManagerValve" /></Context>注意:配置完成后先访问http://192.168.24.172:9900/manager/status,检查是否配置成功。

3、打开Jmeter在线程组下添加“配置元件-HTTP授权管理器”,在HTTP授权管理的“基础UR L”中输入http://192.168.24.172:9900/manager/status,用户名为上面新建的admin,密码是admin,其他默认,如下图所示4、接着在当前线程组下添加“HTTP请求”,输入被检测服务器中的TOMCAT访问IP和端口号;路径输入/manager/status;请求参数输入XML(必须大写),值为true,如下图A1所示并且将此HTTP请求设置为“用作监视器”,如下图A2所示图A1图A25、接着在当前HTTP请求下添加“监视器结果”和“察看结果树”,如下图所示6、最后运行JMETER脚本,此时进入到“监视器结果”界面可以看到被测服务器IP和资源(图片),如下图所示2.2、监控linux资源1、首先下载JMeterPlugins-Extras-1.4.0和JMeterJMeterPlugins-Standard-1.3.1插件(下载地址:https:///downloads/old/)2、然后将解压出来的JAR包放到Jmeter/lib/ext目录下3、再下载ServerAgent-2.2.1.zip(默认端口4444,下载地址:/lsjdddddd/p/5709052.html)并部署到Linux下4、在Linux下进入到ServerAgent目录下启动服务:sh startAgent.sh5、打开Jmeter在HTTP请求下添加“监视器”即可看到JP@开头的监视元素6、监控Linux服务器资源添加“jp@gc-PerMon Metrics Collector”,然后输入Linux的IP,端口号4444,和要监控的资源,如下图所示注意:监控完一次服务器资源后,ServerAgent会自动关闭,需要重新启动。

相关主题