包含内容如下:
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管理器中进行添加。官方描述:
自己导入.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原理一样)
二、Auth服务器,接口测试
接口测试就查看开发提供的接口文档,去填写路径和参数就好了。‘用户资料查询’接口用到authTicket,不需参数。
三、业务服务器,接口测试
接口文档中得知,业务接口都有一个公共请求头信息。相当于这个公共请求头(request_header)+request_body封装在HTTP请求的body中。
‘版本升级检查’除了公共请求头外,还需要提供升级的平台platform信息。Body Data如图所示。
另外,接口定义统一以json文件体格式传输。需要在HTTP信息头中加个Content-Type字段标明:application/json;charset=UTF-8。不然以默认的application/x-www-form-urlencoded会报错。
四、使用CSV Data Set Config参数化接口入参
‘体脂秤数据上传’接口是上传用户的测量资料,返回测脂结果。图中红框部分是输入具体的数值来进行单个接口测试的。当要测试不同组合的入参是不是返回正确的结果时,可以用到CSV Data Set Config将入参从文本读入,再用${}的方式进行引用。
这里设置了两组数据进行测试。线程组里将循环次数设置为2。运行后可以看到该接口两次的请求数据和返回信息都不一样。
另外,最后加了个全局响应断言(断言根据接口返回信息的内容去设计,可以使用响应文本、代码,包括或Equals去设置)
五、扩展: 获取数据库数据作为入参
通过JDBC Connection Configuration和JDBC Request去实现。试了下登录远程服务器需要用户名密码,登入数据库需要用户名密码。JMeter只有输入数据库用户名密码的地方,所以在想,是不是数据库作为入参时,是需要JMeter在服务器上的。另外,测试数据库或者服务器压力的时候,应该是JMeter安装在服务器上从而避免网络情况对响应时间等指标数据的影响。决定改天在自己电脑上建个数据库,再试下。
结束~