一文即可了解!自动化回归测试工具

news2024/11/25 6:38:00

目录

前言:

      设计背景:

      解决方案:

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

      控制指令说明:

      自定义检查方法说明:

      变量说明:

      附加动作说明:


前言:

自动化回归测试工具可以帮助测试团队快速、自动地执行回归测试,并能够节省大量的时间和人力成本。

最近因工作需要,开发了一个回归测试的小工具。可以根据配置读取不同交易报文并进行变量替换,然后自动发起交易并检查结果。自我感觉挺好用的,与大家分享一下设计思路。(代码要保密,就不上传了。有需要可以根据设计思路自己开发。

      设计背景:

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

      目前此项回归测试工作主要靠程序员手工完成,存在以下问题:

  1. 回归测试需要准备很多交易报文,耗时费力

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

      解决方案:

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

理想情况下,经过多次需求迭代后,测试案例即可全面覆盖所有交易路径。这样可以节省开发人员回归测试时间,对于系统重大升级时保障升级质量也有帮助。

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

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

  2. 可以利用loadrunner的GUI界面

  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退出案例测试调试某个测试配置时可以用,避免后面案例干扰,查日志方便
sleepN休眠N毫秒暂停一会再进行下一个测试案例执行,给测试人员思考时间
skipN跳过下面N个案例配置新增案例配置后可以直接执行新增的内容,不需要跑老的案例
gotolabel跳到指定案例执行新增案例配置后可以直接执行新增的内容,不需要跑老的案例
repeatN重复执行后面一个配置N次交易包含static变量时,可以使用此指令指定重复执行测试案例
forN/endfor重复执行下一个endfor出现之前的配置N次,可嵌套同上,如果需要重复执行的案例比较多可用
echomessage输出日志信息,message里面可包含变量输出日志信息,特别是变量值,方便调试
setvarvalue设置变量值,var和value都可以包含变量设置变量值,方便后面报文使用。

(例如要生成一个全部配置共用的随机数字,可以使用setmy_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

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Af5vb8Yd04Vko7N1pLyynmp07ZePYHSQ&authKey=ks61fFogMnCB2Mw40a8gAbIgAW0iXxiu3fEp%2BsUtanTrM%2F8aJ4pzu%2B74Fo%2Fp%2Fd8G&noverify=0&group_code=574737577

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Numpy---ndarray矩阵运算、广播机制、排序、文件操作

1. 矩阵运算 n 10 # 加 n - 10 # 减 n * 10 # 乘 n / 10 # 除 n // 2 # 整除 n ** 2 # 次方 n % 2 # 余数 n1 np.random.randint(0, 10, size(4, 5)) n2 np.random.randint(0, 10, size(4, 5)) display(n1, n2) array([[3, 6, 1, 9, 9],[8, 9, 2, 0, 4],[4, 8, 5, …

17 条件随机场

文章目录 17 条件随机场——CRF(Condition Random Field)17.1 背景介绍17.2 HMM与MEMM的区别17.3 MEMM与CRF的区别17.4 CRF模型17.4.1 CRF的概率密度函数17.4.2 CRF概率密度函数简化(向量形式) 17.5 CRF需要解决的问题17.6 边缘概…

基于 AIGC,RocketMQ 学习社区探索开源软件学习新范式

作者:寒斜 AIGC 持续火爆全球,越来越多的场景开始接入并体现非凡的价值。其中应用广泛的场景之一就是智能知识问答,它改变了人们学习的方式,从阅读式到问答式,让知识的获取更加精准有效。开源软件拥有着广泛的求知群体…

ITSM 如何帮助制造业企业

ITSM在现代制造业中的作用 在过去的几年中,制造业已经看到了快速的数字化,以智能制造技术改进生产技术。在工业4.0和工业5.0的推动下,制造商正在摆脱陈旧 以及利用物联网、人工智能、机器学习和大数据等先进技术的互联智能制造系统&#xff…

【Protobuf速成指南】Any类型的使用

文章目录 2.2 Any类型的使用一、基本认识二、使用需知三、Any字段的使用①修改proto文件② Any相关函数③ 类型转换 四、Contact 2.2 改写 2.2 Any类型的使用 本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的学习Protobuf的使用。这是Contacts的2.2版本&a…

基于脑电功率的疲劳驾驶检测研究_kaic

基于脑电功率的疲劳驾驶检测研究 摘 要 在道路交通安全领域,疲劳驾驶是一种常见的交通安全隐患。现有数据统计,全球每年有大约21%的重大交通事故与疲劳驾驶有关,疲劳驾驶成为了诱发交通事故的主要原因之一…

多模态深度学习:定义、示例、应用

人类使用五种感官来体验和解读周围的世界。我们的五种感官从五个不同的来源和五种不同的方式捕捉信息。模态是指某事发生、经历或捕捉的方式。 人脑由可以同时处理多种模式的神经网络组成。想象一下进行对话——您大脑的神经网络处理多模式输入(音频、视觉、文本、…

《树莓派4B家庭服务器搭建指南》第十六期:安装Calibre Web建立公网可访问私人电子书库

最近在整理收藏的电子书,以便在公网可以随时访问自己的电子书,然而,Calibre桌面端虽然功能强大,并且可以开启本地http服务,但http的界面还是过于简陋 我发现了一个Calibre Web开源项目,界面也非常舒服&…

STM32F407实现1588v2(ptpd)

硬件: STM32F407ZGT6开发板 软件: VSCode arm-none-eabi-gcc openOCD st-link 在github搜到一个在NUCLEO-F429ZI开发板上移植ptpd的example,因为和F407差别很小,所以就打算用这个demo移植到手头的开发板上。因为目前只需要…

mysql中将字符123转变成1.2.3

具体业务需求:因为需求变更,之前存储数值型字符串,现需要将数值型转变为x.x.x update mpc_mp_package a join (select(selectGROUP_CONCAT(SUBSTRING(mp_ver, number, 1) separator .) as separated_stringfrom(selecti : i 1 as numberfro…

别再等了,这就是ping通上不了网的解决办法

ip能ping通,但是就是无法上网,应该大部分网工都遇到过这种情况吧。 能ping通,说明ip是能够和网络设备通信的,但是上不了网,就要具体问题具体分析了。 今天聊点基础的,ip能ping通但是上不了网,到…

百分点科技出席2023华为云TechWave中东中亚峰会

6月7日,2023华为云TechWave中东中亚峰会在哈萨克斯坦阿拉木图举办,百分点科技作为华为云生态合作伙伴出席活动,联合发布系列智能化解决方案,百分点科技CTO刘译璟进行主题分享。 刘译璟(右二)参与联合解决方…

RocketMQ集群部署

一、部署环境 两台服务器,每台一个nameserver构成集群,broker集群双主双从。 主机 容器名称 IP 与宿主机的端口映射 ODL控制器会同过vip通道10909去连接mq。主从通过10912端口同步这两个地址是通过-2 1 在配置文件端口10911基础上计算得出 两个宿主机…

高速信号的 pre-emphasis 预加重和 de-emphasis去加重

1 为何需要 emphasis ? 预加重和去加重其实属于高速信号均衡技术的一种,均衡技术又叫信号补偿技术。 信号从发送端发出,经信道传输,到达接收端。在传输过程中,信号会发生失真,影响接收端对信号的正确判决。…

项目构建与部署

项目构建与部署 Jar部署War部署1.修改打包形式2.排除内置的Tomcat容器3.添加servlet-api依赖4.修改启动类 项目可以内嵌Servlet容器,因此部署极为方便,可直接打包成可执行Jar包部署在有Java运行环境的服务器…

BurpSuite2023测试越权漏洞

BurpSuite2023测试越权漏洞 BurpSuite安装创建项目 - 打开内置浏览器越权漏洞测试问题处理 BurpSuite安装 官网下载社区版并安装,下载地址:链接: https://portswigger.net/burp 安装成功后图标 创建项目 - 打开内置浏览器 打开BurpSuite&#xff0c…

uni-app打包ios的步骤

注意:下面的操作必须同时满足三个条件,且这三个条件都是必须得: 1.有一个苹果开发者账号(要收费) 2.有一台苹果笔记本(在笔记本上生成证书和文件) 3.有一部苹果手机(用于测试app的功能) 使用uniapp发布ios的应用的步骤如下: 点击发…

Lecture 14 Context-Free Grammar

目录 Context-Free GrammarBasics of Context-Free GrammarsCFG Parsing ConstituentsSyntactic ConstituentsConstituents and PhrasesExample: A Simple CFG for English and generating sentencesCFG Trees CYK AlgorithmCYK AlgorithmConvert to Chomsky Normal FormThe CY…

影响电磁铁磁力大小的因素有哪些

影响电磁铁磁力大小的因素主要有四个,一是缠绕在铁芯上线圈的圈数,二是线圈中电流的强度,三是缠绕的线圈与铁芯的距离,四是铁芯的大小形状。 首先要了解电磁铁的磁性是如何产生的,通电螺线管的磁场,由毕奥&…

C#程序设计实验

C#实验 实验1 C# 基本编程 题目 VS下新建一个控制台项目:诸如:hello world程序,运行程序输出结果。并解释C#程序的结构: 诸如:一个基本的C#程序包含几部分 ,每一部分的功能是什么。。。 完整代码 usin…