有时会碰到脚本需要处理验证码或加密的情况,一般情况下建议被测应用做简化处理,绕开验证或加解密处理,如果确实有需要,XRunner 可以通过导入 jar 的方式来进行验证和加/解密处理。具体过程如下:
1)新建性能测试脚本,明确哪些参数需要特殊处理,在 XRunner 参数配置模块新增好参数
2)用 eclipse 新建 java 项目,并导入 XRunner 的类模板文件,在接收和发送方法中写代码,实现业务处理逻辑
3)接收方法中,将请求响应的值传入 jar 包,处理后,保存到前面设置的参数中,供后面使用;
4)发送方法中,先做好数据处理,保存到前面设置的参数中,供后面使用
5)将写好的代码导出成 jar 包
6)在 XRunner 平台上上传 jar 包,在脚本中引入 jar 包,设置好引用方式
7)调试脚本和测试计划,检查参数取值是否从 jar 中获取到了正确的值。
在 XRunner 中录制脚本,以http://192.168.2.103:18080/Example/ 为例,调试脚本,自动关联,确定需要 jar 处理和传输的参数,或者在参数配置中新增参数。
1)打开 eclipse,新建一个 java 项目,在 src 中新建一个包,包名必须为:xrunner,否则运行不了。
2)将 XRunner 两个类文件(AbstractXrunner.java 和 XrunnerImpl.java)拷贝到 xrunner 包中。
3)在 receive()、send()、doJAVA() 中写代码实现业务处理
4)导出 XrunnerImpl.java 打成 jar 包(注意:AbstractXrunner.java 不能包含在包里面)
1)将 jar 包导入 XRunner 平台;
2)编辑 XRunner 脚本,在请求的【调用 JAR】页面,选择调用 jar 包的方式和要使用 jar 包,保存。
3)脚本调试,脚本加入测试计划调试,看从 jar 处理后的参数值是否引用正确。
附 1:类文件说明
1)AbstractXrunner.java:为主类
2)XrunnerImpl.java:为子类,在该文件中实现自己的业务
主要函数:
send():可用于前端产生数据,然后随请求一起发送给服务端验证,比如前端自己产生的验证码,发给后端验证
receive():可用于请求接收服务器返回数据,处理后,再使用
DoJAVA():用于 XRunner 工具没有的协议,通过写 java 程序实现性能测试脚本,如 redis 的性能测试脚本。
方法的具体参数含义,请见:《XrunnerImpl.java》文件内注释
附 2:不同 jar 包调用方式实践记录
1)选择:【接收调用 - 关联参数前】调用 receive() 方法
如果参数是普通参数,则显示从 jar 包传回来的值
如果参数是关联参数,则显示通过关联提取的值,在后面请求使用该参数时,也是用的提取关联的值
2)选择:【接收调用 - 关联参数后】调用 receive() 方法
如果参数是普通参数,则显示从 jar 包传回来的值
如果参数是关联参数,则也显示从 jar 包传回来的值
3)选择:【发送前调用 - 关联参数前】调用 send() 方法
如果参数是普通参数,则显示从 jar 包传回来的值
如果参数是关联参数,则也显示从 jar 包传回来的值
4)选择:【发送前调用 - 关联参数后】调用 send() 方法
如果参数是普通参数,则显示从 jar 传回来的值
如果参数是关联参数,则显示通过关联提取的值,不显示从 jar 传回来的值,在后面请求再使用该参数时,被改为了 jar 包里面传回的值
5)选择:【都调用:*】该请求的 send() 和 receive() 都要调用