基于知识库的接口自动化测试——结果模型化方法与装置的分析

一、背景

随着自动化测试的设计理念不断完善、新的技术不断应用,自动化测试资产的积累代价和维护成本不断降低,自动化测试资产的数量持续增长。同时,随着DevOps的普及,应用研发过程越来越敏捷,自动化测试能力逐步从测试部门输出至开发部门,在每日构建、制品晋级、版本发布等流程中成为必备环节。

随着自动化测试执行能力的不断提升,自动化测试执行结果数据指数级增加,大量的结果分析处理工作成为自动化测试开展的瓶颈。本文介绍一种基于知识库的接口自动化测试结果分析方法与装置,通过接口测试结果模型化方法和基于错误码库、非缺陷知识库的错误归类分析方法,辅助测试人员高效实施大规模、多系统的接口自动化测试结果分析处理。

二、接口测试结果模型化

接口自动化测试,简单地说,就是按测试需求装报文,发送给被测系统,接收并解析返回报文,判断测试成功失败。

在自动化测试平台中,对接口测试过程模型化统一封装:

(1)通讯过程是报文发送和接收,其相关内容抽象为通讯组件;

(2)报文是被测系统与其客户端或调用方针对具体接口约定的交互信息。其中,报文组装和解析相关内容抽象为报文组件,具体接口交互信息抽象为报文格式,对发送给被测系统的报文称为输入报文,被测系统返回的报文称为输出报文。

三、对测试结果的第一级分析:根据返回标志位进行初步判断

一般而言,符合一定开发规范的应用系统,会在返回报文公有域特定字段返回应用级处理结果。若应用级处理错误,则还会在返回报文公有域特定字段返回错误码和错误信息。

因此,在接口自动化测试执行过程中,执行程序将接口测试结果预处理为统一数据模型,包括结果标志、错误码、错误信息和返回报文,便于后续处理。

其中,结果标志分为5类:

(1)应用级处理正确,则结果标志为N,此时错误码、错误信息均为空;

(2)应用级处理错误,则结果标志为E,错误码、错误信息存储返回报文提取的相应信息;

(3)在金融系统中,为保证安全,重要金融交易一般会涉及双人复核或者远程授权的过程,此时应用级处理结果为“需要授权”,则结果标志为A,错误码、错误信息均为空;

(4)在平台执行接口测试的过程中,若出现任何程序未处理的内部异常,则结果标志为I,此时错误码、错误信息均为空;

(5)在常见的HTTP/HTTPS、TCP等通讯方法中,若无法正常通讯并拿到预期的返回报文,则认为在通讯级发生异常,结果标志为U,此时错误码、错误信息均为空。

通过第一级分析,可以对接口测试结果进行初步分类,辅助测试人员判断接口测试报错类型,排除网络等环境因素造成的误报。

四、对测试结果的第二级分析:根据错误码库和非缺陷知识库进行精准判断

仅通过返回报文分析,对于“大幅降低接口测试误报率”的预期是不够的,需要配合错误码库和非缺陷知识库进行第二级精准分析。其实现方式是:自动化测试平台按系统名称为各系统提供错误码库,对结果标志为E的接口测试结果细分错误码,分别设置错误描述、匹配方式和匹配表达式。匹配方式分为三种:

(1)精确匹配:该匹配方式适用于统筹设计良好的系统,项目组能够较好的归类业务错误、分配错误码,并在系统接口设计中在公有域有固定字段返回错误码和错误信息,此类系统直接采用错误码库中的错误码与接口测试结果模型中的错误码匹配;

(2)错误信息模糊匹配:该匹配方式适用于能够从固定字段输出错误信息,但没有固定字段返回错误码或者错误码定义不规范(如错误码是中文信息)的系统,此类系统错误码和错误信息由测试人员自行定义,每类错误码需对应设计匹配表达式,即一条正则表达式,若接口测试结果模型中的错误信息能匹配该正则表达式则归为该类错误;

(3)返回报文模糊匹配:该匹配方式适用于接口设计不规范、无固定字段返回错误信息的系统,此类系统错误码和错误信息由测试人员自行定义,每类错误码需对应设计匹配表达式,即一条正则表达式,若接口测试结果模型中的返回信息能匹配该正则表达式则归为该类错误。

在实际接口测试中,由于被测系统配置错误、被测系统铺底数据异常等问题而出现的错误并非本次测试结果中需重点关注的内容,对于该类错误,将错误码库中的对应错误条目增加标志位,即纳入非缺陷知识库。

经过实践,在实施第二级精准分析后,往往能大幅降低接口自动化测试的误报率,减少一线测试团队的分析工作量。

五、接口测试结果归类分析

基于接口测试结果的模型化和两级分析,我们将接口测试的结果分类分析,输出概要表和错误分类表。

概要表如下:

执行错误的交易将进一步处理为错误明细表,如下:

利用该分析结果,测试人员可重点关注结果类型为“执行错误”的分类,确认为缺陷的应提交给开发人员修复;对于“执行错误非缺陷”的分类,应在解决对应问题后再次测试相关接口。

六、结语

本文介绍的接口自动化测试结果分析方法,将不同系统、不同通讯方式、不同报文协议的接口测试结果标准化为的统一数据模型,并依据组织级错误码库和非缺陷知识库对标准化的测试结果进行分类分析,大大降低测试结果的人工分析工作量。其中,错误码库及配套的三种错误匹配方式,使得测试人员可以灵活自主地为被测系统定制错误归类识别方案,在不同应用系统接口设计标准化程度不一的场景下,解决了接口测试结果的错误识别问题;非缺陷知识库的设计,使得测试人员可以预设部分不关注的错误类型,以获取重点更加突出的错误分析结果,辅助测试人员更加高效地完成测试活动。

接口自动化测试的误报率控制,是提升自动化测试效能的关键点,笔者也将继续探索相关方法,致力于自动化测试效能的不断提升。

文末了:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。同时我邀请你进入我们的软件测试学习交流平台,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,了解测试行业的最新趋势,助你快速进阶Python自动化测试/测试开发,稳住当前职位同时走向高薪之路。

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

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

相关文章

js输入框部分内容不可编辑,其余正常输入,el-input和el-select输入框和多个下拉框联动后的内容不可修改

<tr>//格式// required自定义指令<e-td :required"!read" label><span>地区&#xff1a;</span></e-td><td>//v-if"!read && this.data.nationCode 148"显示逻辑<divclass"table-cell-flex"sty…

camera曝光时间

曝光和传感器读数 相机上的图像采集过程由两个不同的部分组成。第一部分是曝光。曝光完成后&#xff0c;第二步就是从传感器的寄存器中读取数据并传输&#xff08;readout&#xff09;。 曝光&#xff1a;曝光是图像传感器进行感光的一个过程&#xff0c;相机曝光时间&#xf…

技术阅读周刊第十期

技术阅读周刊&#xff0c;每周更新。 周四加了个班&#xff0c;周五没缓过来&#xff0c;就推迟到今天更新了 历史更新 20231117&#xff1a;第六期20231124&#xff1a;第七期20231201&#xff1a;第八期20231215&#xff1a;第九期 Golang: 14 Shorthand Tricks You Might No…

LLMs 玩狼人杀:清华大学验证大模型参与复杂交流博弈游戏的能力

作者&#xff1a;彬彬 编辑&#xff1a;李宝珠&#xff0c;三羊 清华大学研究团队提出了一种用于交流游戏的框架&#xff0c;展示了大语言模型从经验中学习的能力&#xff0c;还发现大语言模型具有非预编程的策略行为&#xff0c;如信任、对抗、伪装和领导力。 近年来&#x…

设计模式——迭代器模式

引言 迭代器模式是一种行为设计模式&#xff0c; 让你能在不暴露集合底层表现形式 &#xff08;列表、 栈和树等&#xff09; 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此&#xff0c; 集合只是一组对象的容器而已。 大部分集合使用…

Spring 原理(一)

Spring 原理 它是一个全面的、企业应用开发一站式的解决方案&#xff0c;贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。 Spring 特点 轻量级控制反转面向切面容器框架集合 Spring 核心组件 Spring 常用模块 Spring 主要包 Spring 常用注解 bean …

达索系统SOLIDWORKS 2024 云服务新功能

“云服务 是基于互联网的相关服务的增加、使用和交互模式&#xff0c;通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。 云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网&#xff0c;后来也用来表示互联网和底层基础设施的抽象。云服务指通过网络以…

小贴士:知道方程的解如何求通解

1.思路&#xff1a;认知&#xff1a;题中的所有解都是特解&#xff0c;解的形式为kxb 1.如何求通解&#xff1a;a1a2是题目中提供的条件&#xff0c;根据认知它们的和是2b&#xff0c;所以b等于a1a3除2&#xff0c;而有一条认知&#xff0c;为两个特解的差为通解向量&#xff0…

python绘图总结

1 二维图像 1.1 二维曲线 plot(x, y, ls"-", lw1.5, labelNone)x, y&#xff1a;横坐标和纵坐标ls&#xff1a;颜色、点标记、线型列表&#xff0c;如 ls‘r*-’ 表示红色实线、*形点&#xff0c;ls‘g.’ 表示绿色散点lw&#xff1a;线宽度label&#xff1a;线标签…

波奇学Linux:进程等待

僵尸进程(Z状态)无法被kill指令杀死&#xff0c;通过进程等待杀掉它&#xff0c;解决内存泄漏问题&#xff08;进程处于僵尸态&#xff0c;仍然维护pcb结构体来解决问题&#xff09; 通过进程等待&#xff0c;获得进程退出情况 wait回收僵尸态进程 我们可以看到进程由五秒后子…

php hyperf 读取redis,存储到数据库

redis中排行榜中的数据 public function execute(string $date){$query ChannelConfig::query();$query->where(module_name, rank_reward);$rewardData $query->first();$rewards [];if( $rewardData ){$rewardContents $rewardData->content;foreach ($rewardC…

VMware----基于 VMware 玩转 CentOS 虚拟机创建、克隆以及配置后台运行

查看原文 文章目录 一、安装 Vmware二、创建 CentOS7 系统的虚拟机三、克隆虚拟机四、设置虚拟机后台运行 一、安装 Vmware &#xff08;1&#xff09;打开VMware下载地址页面&#xff0c;滑动页面&#xff0c;找到如下界面&#xff0c;点击【下载】 &#xff08;2&#xff…

本地电商平台商业模式 同城实体店引流获客方法

本地电商平台的商业模式通常是基于在线市场交易的。这样的平台允许本地商家在其上发布商品信息&#xff0c;消费者可以在平台上选择购买&#xff0c;并直接向卖家付款。商家可以通过平台获得更广泛的市场覆盖和销售机会&#xff0c;同时消费者也可以享受更加便利和多样化的购物…

RPC(3):HttpClient实现RPC之GET请求

1HttpClient简介 在JDK中java.net包下提供了用户HTTP访问的基本功能&#xff0c;但是它缺少灵活性或许多应用所需要的功能。 HttpClient起初是Apache Jakarta Common 的子项目。用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 H…

Neural Network——神经网络

1.feature reusing——特征复用 1.1 什么是特征复用 回顾我们之前所学习的模型&#xff0c;本质上都是基于线性回归&#xff0c;但却都可以运用于非线性相关的数据&#xff0c;包括使用了如下方法 增加更多的特征产生新的特征&#xff08;多项式回归&#xff09;核函数 在本身…

Spring IOC 原理(二)

Spring IOC 原理 概念 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系&#xff0c;利用 Java 语言的反射功能实例化Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上&#xff0c;还提供了 Bean 实例缓存、生命周期管理、 Bean 实…

JS中浅拷贝和深拷贝

本篇文章咱们一起来学习下JS中的浅拷贝和深拷贝&#xff0c;了解它们在内存上的区别&#xff0c;并掌握浅拷贝和深拷贝的常用实现方法。 引用赋值 在学习拷贝之前&#xff0c;咱们先来看一个常见的情景&#xff0c;如下图&#xff1a; 大家觉得这是深拷贝还是浅拷贝&#xff0…

2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心

2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心 前言一. Amazon Connect 介绍 &#x1f5fa;️二. Amazon Connect 使用教程 &#x1f5fa;️1.我们打开URl链接找到对应服务2.输入Amazon Connect选中第一个点击进入即可&#xff1b;3.在进入之后我们就…

【C++初阶】八、初识模板(泛型编程、函数模板、类模板)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】七、内存管理 &#xff08;C/C内存分布、C内存管理方式、operator new / delete 函数、定位new表达式&#xff09; -CSDN博客 目录 一 . 泛型编程 二 . 函数模板 函数模板…

使用ffmpeg将图片合成为mp4

首先在在图片文件夹输入cmd 这里确保已经安装ffmpeg并配置好环境变量。 然后这是我的文件夹目录&#xff1a; 将21张图片合成为mp4视频 这里使用如下命令&#xff1a; ffmpeg -framerate 1 -start_number 0 -i %d.png -c:v libx264 -pix_fmt yuv420p output.mp4 -framerat…