接口测试用例生成工具介绍及应用

背景

目前,接口测试是开展项目测试实施过程中非常重要的环节,对于新增接口和修改接口更是需要做到应测必测,但是在实施过程中普遍存在一些问题,经分析总结如下:

1.耗时长: 接口测试整体流程较长,对每个字段都需要进行各种校验,且人工进行基础性字段验证的过程极为痛苦重复。

2.无数据留存: 每次接口测试所使用的完整的测试用例、测试数据、测试结果不易留存,不方便复测和排查问题。

3.容易遗漏: 纯手工测试,受制于测试人员的能力、经验,测试的覆盖度无从追溯,且枯燥乏味的字段校验极容易遗漏。

基于以上问题,我们需要研发一种可以通过预配置实现、基于经验积累、满足多种测试要求的接口测试工具。

工具实现思路

本章将通过对接口测试的步骤和用例组装过程进行拆分来介绍工具实现的总体思路。

图片

图一 接口用例自动化生成的总体思路

工具将接口测试划分为三个阶段,分别为准备阶段、执行阶段以及后续工作。准备阶段主要是准备接口测试所需要素和配置,执行阶段主要为工具自动化执行生成测试用例、数据和接口测试的执行,后续工作主要为生成擎云所需要的自动化测试文件,对执行结果进行断言判断,手工录入tfs进行缺陷跟踪等。

其中,工具将接口测试的重点聚焦于接口测试的准备阶段,通过air接口文档或自定义格式接口文档进行,通过配置“用例集”与参数“组装规则”生成执行阶段所需要的完备测试用例与数据,然后通过工具自动进行执行。

图片

图二 接口用例自动化生成的具体细节

工具将接口用例组装过程拆分成接口层、参数层、用例集组装层、兜底测试组装层、参数组装规则层这几部分,下面对这几层进行详细的介绍。

1.接口层:接口层中包含的是接口的整体信息,主要有接口的类型(post/get),接口所包含的参数,接口可能所需要的header头等信息。该部分信息可以通过读取air接口文档或自定义接口文档或者手工录入的方式进行维护。

2.参数层:该层聚焦于接口中的某个具体参数,如图二中的单个“phoneNo”参数,该层主要为了聚焦单个参数并将其送至后续的“用例集组装层”、“兜底测试组装层”进行衍生和变形。

3.用例集组装层:该层通过预先配置好的“用例集”对参数进行组装,从而生成单个参数所需要衍生出的测试用例与数据。譬如某条用例集“反例/首位为1,小于11位数字/1341111111”,那么工具会根据该条用例衍生出“phoneNo”:“1341111111”的数据和“被测接口phoneNo参数首位为1,小于11位数字”的反向测试用例。

参数与用例集的匹配有自选和工具根据参数名进行匹配两种方式,关于“用例集”这一概念的具体设计思路我们将在下文进行详细解释。

4.兜底测试组装层:所谓的兜底测试,就是指我们在接口测试中,需要反复的对每一个字段都进行测试的基础性验证。如参数为空、为空格的情况,参数超出和少于长度限制的情况,参数类型与规定类型不同的情况。该种验证极易检测出代码中的异常捕获缺失与代码异常错误泄露的缺陷,但人工进行该种检测极为枯燥重复,所以需要使用工具对参数进行兜底用例的衍生与测试。

兜底测试组装层的用例和数据的衍生规则与用例集组装层是类似的,不同的是兜底测试组装层会对每个参数都进行相应的兜底测试,兜底测试也不需要选择相应的用例集。

5.参数组装层:参数组装层主要是为了将参数层衍生出的众多单个参数的案例根据一定逻辑和规则组装到一起,最终形成完整的测试报文与测试案例,目前使用的参数组装规则主要有以下三种:控制变量法、正交法、parwise法。

关于“参数组装规则”这一概念的具体设计思路我们将在下文进行详细解释。

用例集

用例集是自动化接口测试的“血肉”,是完成数据预配置、经验积累的实现方式,是对接口数据进行衍生和测试的基础。用例集中包含了测试系统、参数属性、内容、用例内容的信息,下面我们对这几个字段进行详细解释。

图片

图三 最小用例集

1.测试系统:标志了该用例集所在的测试系统,由于不同系统中所使用的测试数据、测试考量点不同,所以用例集需要根据系统对接口参数进行匹配,同时标识系统也方便了同系统的测试人员对数据进行分享和复用。

2.参数属性:标志了该用例集为参数类型还是参数名,如果为参数名的话,就当作普通的用例集对该参数名进行优先匹配,如果为参数类型的话,工具就会自动对该系统内该种参数类型的参数进行兜底测试。

3.内容:与参数属性相对应的参数名称或参数类型。

4.用例内容:包含了用例描述、正反向类型和测试数据。其中,测试数据为非必选项,如果测试数据为空的话,那么仅可以生成接口测试用例而不可以生成接口测试报文。

图片

图四 不同接口测试维度的测试颗粒度与用例集维护难度关系图

工具生成用例的测试多样性和覆盖度离不开我们对用例集的设计。通常,我们设计接口测试用例集从以下三个角度进行。

1.兜底测试:指每个参数都需要进行校验的情况,如参数为空,参数过长等,该种情况往往通过设置参数类型的用例集和工具自动识别来进行测试,兜底测试的数据几乎不会改变,也不需要进行维护。

2.功能测试:指满足功能需求,有一定功能含义的测试用例,如对卡号这个参数来说,已销户的卡号对大多数交易来说就是一个有功能含义的反例,对于功能测试,大多数测试用例与数据是有一定的时效性和可复用性的,但对数据的维护仍需要一定成本,对于经常变动的数据,目前的解决方案是通过sql语句进行动态提取。

3.安全测试:满足横向越权、竖向越权等安全测试要求的测试用例,测试人员需要对越权类场景进行识别与设计,同时对越权测试所使用数据也需要进行精心的构造,一旦完成了对数据的构造,那么安全测试的测试用例和数据也可以看成一种特殊的“功能测试”添加进对应参数的用例集中。

参数组装规则

如果说用例集是自动化接口测试的“血肉”的话,参数组装规则就是自动化接口测试的“骨”,规则将各个参数所衍生出的用例根据一定的逻辑紧密联系到一起,最终形成覆盖度高却不冗余的测试用例。目前支持的规则主要有以下三种。

图片

图五 使用控制变量法进行自动化接口测试

1.控制变量法:功能测试的经典方法,控制其他参数不变,修改某一参数进行衍生用例进行测试。

2.正交法:将所有单个参数衍生出的全部用例进行正交组合,可以覆盖测试中的所有情况。

3.Parwise法:基于Pairwise统计学的用例计算方法,原理为双因子之间进行正交,实际为对正交法的一种科学的裁剪,适合没有明确正反向的高效接口自动化测试。

推广使用效果

通过配置用例集我们实现了对测试经验的积累,对测试场景的全覆盖。通过配置用例生成规则,我们保证了生成用例的覆盖度高而又不冗余,最终完成我们对接口测试的高效率、高覆盖度、高质量的要求。

图片

图六 部分系统推广使用效果图

该工具目前已在掌银信用卡频道、微银行信用卡模块、星云、PDS等26个系统模块中使用,共对304个接口生成测试用例3638条。


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

CnOpenData·A股上市公司关联交易数据

一、数据简介 据《上市公司信息披露管理办法》,上市公司作为信息披露义务人,应真实、准确、及时、完整地向市场公开依法及自愿披露的信息。这些公开披露的信息包含但不仅限于公司基本情况、主要会计数据和财务指标、股东持股情况、高管薪酬情况等。上市公…

利用tushare实现选股

ID:399899 量化交易中,首先要弄好的就是选股。然后在才是买卖策略的制定。 不同类型的策略,选股思路也不相同。俗话说得好,不管黑猫白猫,抓到老鼠的就是好猫。一个好的选股策略,往往在量化中是起较为关键的作用的。 …

腾讯微信附近推广告推广,店铺周围黄金3-5公里推广,微信朋友圈广告

继朋友圈广告后,微信4年以来终于推出的第二项广告服务“附近推”——微信终究还是对朋友圈资源下手了。 背靠微信的10亿日活,朋友圈一直以来都是一个巨大广告流量入口,这也是朋友圈广告发展至今依然处于红利期的原因之一。 一:微…

腾讯广点通广告投放-转化归因API回传接口对接踩坑指南

对于腾讯广点通广告平台的文档,实在是忍不住要吐槽一番。本来接收到回传接口文档,看到给的PDF文档没有备注说明,但是看到回传方式,挺简单的。以为一下就能搞定了,但是对接下来才发现,各个字段根本不知道什么…

在 GitHub 上“搞事”,Meta 开源 ImageBind 新模型,超越 GPT-4,对齐文本、音频等 6 种模态!...

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 据外媒报道,上周四,Google、微软、OpenAI 几家公司的 CEO 受邀去白宫,共论关于人工智能发展的一些重要问题。然而,让人有些想不通的是,深耕 A…

基于ChatGPT聊天的零样本信息提取7.25

基于ChatGPT聊天的零样本信息提取 摘要介绍ChatIE用于零样本IE的多轮 QA 实验总结 摘要 零样本信息提取(IE)旨在从未注释的文本中构建IE系统。由于很少涉及人类干预,因此具有挑战性。 零样本IE减少了数据标记所需的时间和工作量。最近对大型…

Android开发权威指南(第2版)电子书pdf下载

Android开发权威指南(第2版)下载链接: https://pan.baidu.com/s/1pftvlZCCq-OzI9o_BAOBjA 提取码获取方式:关注下面微信公众号,回复关键字: 1125

[前言] 实现一个Android电子书阅读APP

大家好,我是小方,我将在接下来的几篇文章中从零实现一个网络小说阅读器,从安卓编程最基础的部分讲起,直至成功完成我们的应用,从新建一个项目开始,不断添加新的代码,添加新的界面,循…

安卓手机上最好的3个azw3阅读器

azw3是亚马逊推出的一种电子书格式,它填补了Mobi对于复杂排版的缺陷,以及原来mobi或azw内容排版上的一些缺陷。目前从Amazon购买的书,大部分已经是azw3格式了,而以前主流的mobi格式则越来越少,它正逐渐取代mobi成为Kin…

安卓手机上最好用的3个azw3阅读器

azw/azw3是亚马逊推出的一种电子书格式,它填补了Mobi对于复杂排版的缺陷,以及原来mobi或azw内容排版上的一些缺陷。目前从Amazon购买的书,大部分已经是azw3格式了,而以前主流的mobi格式则越来越少,它正逐渐取代mobi成为…

安卓电子书格式_6 款值得收藏的电子书阅读软件推荐

前言 通勤路上或者闲暇时分,除了上网刷微博,相信也有很多朋友会看看资料或小说充充电消遣消遣时间。 下面推荐几款优秀的电子书阅读软件给大家,基本可以覆盖大多数平台和常见电子书格式。 电子书阅读软件推荐 # Icecream Ebook Reader 官网&a…

Android开发之pdf

Android手机里面读取显示pdf文件,如果只是简单的开发只需要参考官方提供的simple PdfRendererBasic demo即可。如果你还想支持手势、动画和缩放等高级功能,那么需要用到开源库,网上不错开源的库倒是有几个,稍后再来对比抉择,先来了…

基于Android的本地电子书阅读器的设计与实现Ebook(3)

之前写这个只是抱着半玩的心态,没有想到有这么多网友愿意驻足浏览,十分的惊喜。这里浅浅说一下我并不是专门学软件开发的,所以如果有什么错误请多指教。 接上回分解。现在我们来到第二个界面“感悟”: fragment_login2.xml&#x…

电子书《Head First Android 开发》百度网盘链接

电子书《Head First Android 开发》,很不错的一本学习安卓的书,需要的可以使用百度网盘 链接:https://pan.baidu.com/s/1bYR0fKK2c0qU-T45Hg6nDQ 提取码:c6pn 目录:

基于Android的本地电子书阅读器的设计与实现Ebook(终章)

昨天写到最后实在是卡的受不了了&#xff0c;今天把这个写完。 最后就是补充几个xml&#xff0c;不知道前面有没有放&#xff0c;在这里补充下。 应该有五个是遗漏的&#xff1a; 我在这里按照顺序依次给出代码&#xff0c;就不标名字了 <?xml version"1.0" enc…

安卓电子书格式_不用电脑,6招教你把手机上的电子书传输到Kindle上

点击 上方蓝字 查看你有多少朋友在悄悄关注 本文共 15 68 字 预计阅读时间: 2 分钟 相信每位Kindler都会有这样的生活场景——出门在外,不易携带电脑,手头上只能带轻量级的设备,比如带一部可以上网的手机,一台Kindle。 在这种场景下,如果Kindle上没有想看的书,而手机上却…

基于安卓的电子书阅读器

功能描述&#xff1a; 1&#xff1a;用户在使用软件前需要先对软件进行注册&#xff0c;注册完成后通过账号和密码登录成功后&#xff0c;才可以对软件进行使用 2&#xff1a;用户登录成功后可以查看最新书籍信息&#xff0c;以及数据的分类&#xff0c;排行等信息&#xff0c;…

epub文件是什么文件?如何用安卓手机打开?

大家在查找资料时&#xff0c;越来越多的遇见epub格式了。其实EPUB是一种电子文档格式&#xff0c; 如同word txt pdf一样可以承载很多文字信息。但在这种格式中&#xff0c;使用了不同的开放标准。区别在于&#xff0c;EPub文件属于一种可以“自动重新编排”的文件&#xff1b…

安卓手机电子书阅读器的使用体验及对比

写在前面 由于一些原因, 我一直使用安卓手机, 在安卓上查看PDF, 我经历了几个不同的阶段, 但是体验多多少少会有一些不好, 直到最近, 我才在一篇博客中找到了一款软件, 名为readera, 可以说完美解决了之前各种软件中的一些缺点与不足了. 下面从我的各个阶段使用 的PDF阅读器开…

安卓手机上最好的3个mobi阅读器

如epub、azw3一样&#xff0c;mobi也是一种常见的电子书格式&#xff0c;它可以用亚马逊电子设备打开阅读&#xff0c;但是在手机上应该怎么打开呢&#xff1f;其实通过一些支持mobi格式的阅读器就可以打开。今天小编就为大家推荐3个在安卓手机上可用的mobi阅读器。 第一款&am…