【接口/性能】JMeter03 - 参数化

包含内容如下:

1. 访问HTTPS;用户登录,获取TGT和Ticket流程

2. Auth服务器,接口测试

3. 业务服务器,接口测试 (公司使用了CAS认证,分开了cas服务器,auth服务器,业务服务器)

4. 使用CSV Data Set Config参数化接口入参

5. 扩展(未完成):获取数据库数据作为入参


一、访问HTTPS;用户登录,获取TGT和Ticket流程

之前的文章里试过通过添加‘HTTP代理服务器’自动生成证书等操作访问HTTPS,会有自动录制请求的过程。后来发现是可以直接将待访问服务器的证书导出crt格式,转成.store文件,并设置密码,然后在JMeter的SSL管理器中进行添加。官方描述:

【接口/性能】JMeter03 - 参数化_第1张图片

自己导入.store文件的操作参考:http://blog.csdn.net/fvafuc/article/details/49761237


然后:用户登录,获取TGT和Ticket流程

操作基本与之前的文章‘Jmeter实践02’中一致(http://www.jianshu.com/p/7f88b2522ccf )

不一样的是:

1)因为项目中分Auth和业务(JustFit)两个服务器,需要先分别获取两个服务器的Ticket(区分为authTicket和justfitTicket),在后面不同服务器接口请求中用到。

2)正则表达式提取器放到请求下面了,只针对对应的请求进行提取

3)添加了仅一次控制器。Ticket获取后,在一定时间内是一直有效的,不用重复获取。也是就,当线程组循环次数设为多次时,获取TGT和Ticket只用执行一次就够了。

(HTTP Cookie管理器这里其实不会用到,因为后面的接口直接用了Ticket值就可以。有一些Web请求是在登录后Cookie中获取用户信息的,不用再次登录。跟这里的Ticket原理一样)

【接口/性能】JMeter03 - 参数化_第2张图片

二、Auth服务器,接口测试

接口测试就查看开发提供的接口文档,去填写路径和参数就好了。‘用户资料查询’接口用到authTicket,不需参数。

【接口/性能】JMeter03 - 参数化_第3张图片

三、业务服务器,接口测试

接口文档中得知,业务接口都有一个公共请求头信息。相当于这个公共请求头(request_header)+request_body封装在HTTP请求的body中。

‘版本升级检查’除了公共请求头外,还需要提供升级的平台platform信息。Body Data如图所示。

另外,接口定义统一以json文件体格式传输。需要在HTTP信息头中加个Content-Type字段标明:application/json;charset=UTF-8。不然以默认的application/x-www-form-urlencoded会报错。

【接口/性能】JMeter03 - 参数化_第4张图片
【接口/性能】JMeter03 - 参数化_第5张图片

四、使用CSV Data Set Config参数化接口入参

‘体脂秤数据上传’接口是上传用户的测量资料,返回测脂结果。图中红框部分是输入具体的数值来进行单个接口测试的。当要测试不同组合的入参是不是返回正确的结果时,可以用到CSV Data Set Config将入参从文本读入,再用${}的方式进行引用。

【接口/性能】JMeter03 - 参数化_第6张图片
【接口/性能】JMeter03 - 参数化_第7张图片

这里设置了两组数据进行测试。线程组里将循环次数设置为2。运行后可以看到该接口两次的请求数据和返回信息都不一样。

【接口/性能】JMeter03 - 参数化_第8张图片
【接口/性能】JMeter03 - 参数化_第9张图片

另外,最后加了个全局响应断言(断言根据接口返回信息的内容去设计,可以使用响应文本、代码,包括或Equals去设置)

【接口/性能】JMeter03 - 参数化_第10张图片

五、扩展: 获取数据库数据作为入参

通过JDBC Connection Configuration和JDBC Request去实现。试了下登录远程服务器需要用户名密码,登入数据库需要用户名密码。JMeter只有输入数据库用户名密码的地方,所以在想,是不是数据库作为入参时,是需要JMeter在服务器上的。另外,测试数据库或者服务器压力的时候,应该是JMeter安装在服务器上从而避免网络情况对响应时间等指标数据的影响。决定改天在自己电脑上建个数据库,再试下。

结束~


你可能感兴趣的:(【接口/性能】JMeter03 - 参数化)