我最近开发的一个自动化回归测试工具 loadrunner脚本编写经验

  最近因工做须要,开发了一个回归测试的小工具。能够根据配置读取不一样交易报文并进行变量替换,而后自动发起交易并检查结果。自我感受挺好用的,与你们分享一下设计思路。(代码要保密,就不上传了。有须要能够根据设计思路本身开发。这个是我以前开发时积累的当心得:https://www.cnblogs.com/kingstarer/p/10291348.html loadrunner脚本编写经验html

设计背景:

目前系统交易愈来愈多,需求改动也比较频繁。为防止代码改动影响旧需求,每次修改代码后都须要把相关交易回归测试一次。程序员

目前此项回归测试工做主要靠程序员手工完成,存在如下问题:数据库

1 回归测试须要准备不少交易报文,耗时费力ide

2 因为回归测试比较麻烦,加上版本迭代频繁,有时只能对比较关键的业务场景进行回归测试,存在必定风险。函数

 

解决方案:

         为避免这种状况,项目组开发了自动化回归测试工具。程序员每次开发完代码后,针对需求的业务场景配置好测试案例,由工具根据案例配置自动执行交易(须要自动生成某些交易报文字段,例如全局流水)并判断案例是否符合要求。工具

理想状况下,通过屡次需求迭代后,测试案例便可全面覆盖全部交易路径。这样能够节省开发人员回归测试时间,对于系统重大升级时保障升级质量也有帮助。post

 

测试工具使用loadrunner脚本编写,这样的好处是测试

1 能够借用loadrunner提供的丰富函数库,如http交互函数,变量替换函数,日志输出函数等url

2 能够利用loadrunner的GUI界面spa

3 经过简单修改配置,可让本工具用于非功能压测

 

         不方便的地方有:

1 须要电脑安装了loadrunner工具才能够执行测试工具

2 loadrunner提供的ide不方便调试

3 没法引用开源静态库(网上只找到引用动态库的方法)

4 因为loadrunner内置编译器与gcc存在部分不兼容,没法直接复用rcc现有功能函数,暂时不能自动检查数据库记录,检查交易日志等。

 

 

测试案例配置说明:

配置文件打#开头的行是注释行,脚本读取时会忽略注释行

每一行配置表明一个测试案例,或者一个控制语句

         测试案件通常由四个字段组成,字段用空白符分隔,第一个字段表明交易报文名称,脚本执行时会根据报文名称读取对应的xml文件,并对里面配置的变量作替换,而后组装成rcc交易报文发往测试机器并获取返回报文。

第二个字段是案例名称,做用是方便测试人员理解案例用途,对于脚本无心义。

第三个字段是案例验证方式,通常是这样的格式:“状态码-错误码-自定义检查方法”,例如"00-0000000000-have(成功)",意思是指望交易返回报文状态码字段是00,错误码字段是0000000000,返回的内容里面包含"成功"字样。若是有一个条件不知足,脚本会认为案例验证失败,输出日志提醒测试人员。

第四个字段是附加动做,通常可填none表明无附加动做。附加动做须要使用的场景, 通常是案例有上下文关系时。例如要测试消费撤销交易,须要先发起消费交易,而后发送撤销交易请求,但此时须要用到前面消费交易的全局流水号。这个时候就须要在前面执行消费交易时使用附加动做save,指示脚本保存这次交易生成的全局事件跟踪号,后面撤销交易时才能够获取到。

        控制语句是一些辅助配置测试案例的指令,例如for指令,能够指示脚本重复执行配置案例,适用于指望相同案例重复执行的场景,避免冗余配置。goto/skip指令,能够跳到/跳过指定案例执行,适合调试特定案例的场景。echo,输出日志/变量信息,方便案例验证失败后定位问题。

控制指令说明:

        

指令名称

指令说明

适用场景

stop

退出案例测试

调试某个测试配置时能够用,避免后面案例干扰,查日志方便

sleep N

休眠N毫秒

暂停一会再进行下一个测试案例执行,给测试人员思考时间

skip N

跳过下面N个案例配置

新增案例配置后能够直接执行新增的内容,不须要跑老的案例

goto label

跳到指定案例执行

新增案例配置后能够直接执行新增的内容,不须要跑老的案例

repeat N

重复执行后面一个配置N次

交易包含static变量时,可使用此指令指定重复执行测试案例

for N/endfor

重复执行下一个endfor出现以前的配置N次,可嵌套

同上,若是须要重复执行的案例比较多可用

echo message

输出日志信息,message里面可包含变量

输出日志信息,特别是变量值,方便调试

set var value

设置变量值,var和value均可以包含变量

设置变量值,方便后面报文使用。
  (例如要生成一个所有配置共用的随机数字,可使用set my_rand {P_rand3})

 

自定义检查方法说明:

 

检查方法

说明

have()

交易返回内容包含指定关键字

haveno()

交易返回内容不包含指定关键字

true

交易返回报文状态码为00

false

交易返回报文状态码不为00

 

 

支持同时指定多个自定义检查方法,用&&链接

 

变量说明:

为方便配置报文,脚本预设计了许多变量,测试人员能够直接引用。

若是有须要能够在vugen自行添加,但切记不要修改(loadrunner修改变量的界面很是奇怪,没有保存功能,只要浏览变量值时用鼠标点选不一样值就会自动保存,要当心)

 

附加动做说明:

检查方法

说明

save

把S_traceId保存到变量Save_S_traceId

savefile

把S_traceId保存到sn_hist_{P_vuserId}.txt

get

从S_traceId取自变量Save_S_traceId而不是从新生成

getfile

读取sn_hist_{P_vuserId}.txt一行记录,并从中生成S_traceId,主要用于冲正退货

save(field_name)

从请求报文中截取field_name指定的xml字段值,保存到变量Save_field_name

相关文章
相关标签/搜索