接口测试平台代码实现80: 多接口用例-20

简介: 接口测试平台代码实现80: 多接口用例-20

  本节我们承接上节。

   编写body请求体 的具体替换代码:

首先请求体类型是none的情况:

微信图片_20220625132614.png

什么都不用处理,很简单。

然后是form-data和x-www,这里我为了尽快结束本模块,暂时写成一样的处理方式。等到本模块结束,后续对整个平台进行细化优化的时候,会重新更标准的处理这块底部请求。微信图片_20220625132720.png

最后是raw。

首先我设计raw-Json的格式:

微信图片_20220625132725.png

然后代码是:

微信图片_20220625132752.png

注意,这里用的是repr() 并不是str()


然后看看报告:

微信图片_20220625132809.png

没问题,qid变成了字符串,en是整形。


最后是raw的其他4种字符串格式的情况:Text,JavaScript,Html,Xml

全是字符串,直接替换即可:

微信图片_20220625132821.png微信图片_20220625132900.png微信图片_20220625132918.png

复制版本:

if api_body_method == 'none':
    pass
elif api_body_method == 'form-data' and api_body_method == 'x-www-form-urlencoded':
    rlist_body = re.findall(r"##(.*?)##",api_body)
    for i in rlist_body:
        api_body = api_body.replace("##"+i+"##",str(eval(i)))
elif api_body_method == 'Json':
    rlist_body = re.findall(r"##(.*?)##",api_body)
    for i in rlist_body:
        api_body = api_body.replace("##"+i+"##",repr(eval(i)))
else:
    rlist_body = re.findall(r"##(.*?)##", api_body)
    for i in rlist_body:
        api_body = api_body.replace("##" + i + "##", str(eval(i)))

好了,目前我们暂时处理完了请求体替换部分,接下来是最后的断言规则。


我们先把请求的返回体 打印出来,方便我们查看报告时判断。

微信图片_20220625132923.png

然后我们运行一下该用例,看看输出:

微信图片_20220625133018.png

可以看到,因为我们第一个接口是真实的,返回的是json串,第二个接口是我们随便写的,报了404,返回的是一个html大段落。


这俩种返回体,很方便我们进行后续断言调试了:

不过我们要先去设计好 这三种断言规则:

微信图片_20220625133025.png

三种断言和上面提取 的 摆放不一致,

都是等号左侧 放实际寻找代码,右侧放 预期值。大家仔细阅读三种规则,然后在我们依次实现之前,要修复一个bug!!!:

注意上图中,我把这三个断言的id 写混了,微信图片_20220625133040.png

修改一下,成为下面的情况:微信图片_20220625133046.png

复制版本:

 <textarea  id="assert_path"  rows="3" style="width: 90%;background-color: rgba(245,236,222,0.29)" placeholder="断言返回值-路径法:
路径=预期值,字符串必须写引号,等号右侧会被求值。多个用换行分隔,例如:
/data/[3]/username='wangzijia'
/data/[2]/userid=0123
/data=[1,2,3]"></textarea>
    <textarea  id="assert_zz"  rows="3" style="width: 90%;background-color: rgba(245,236,222,0.29)" placeholder="断言返回值-正则法:
左边界字符串(.*?)右边界 = 预期值,字符串必须写引号,等号右侧会被求值,多个用换行分隔,例如:
username':(.*?),='wangzijia'
uid':(.*?),=12345"></textarea>
    <textarea  id="assert_qz"  rows="3" style="width: 90%;background-color: rgba(245,236,222,0.29)" placeholder="断言返回值-全文检索:
进行全文检索,存在即通过,全部按照字符串检索,不要加引号,多个用换行分隔,例如:
123495
请求成功
code:200"></textarea>

修复bug后,刷新页面,开始调试。

首先是断言路径法:

我们就拿第一个步骤接口做实验:

微信图片_20220625133052.png

我们之前章节的数次测试可以知道这个queryid的值并不是123456,我们这个故意写错的。


代码实现:

微信图片_20220625133057.png

我们来运行下看看结果:

微信图片_20220625133103.png

这里用例不出意外的失败了,爆出了 值不等 的失败详情。

相关文章
|
8天前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
40 13
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
150 1
|
2月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
71 0
|
18天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
70 11
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
70 3
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
83 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
4月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
280 7
Jmeter实现WebSocket协议的接口测试方法
|
4月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
289 3
快速上手|HTTP 接口功能自动化测试