接口测试平台代码实现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

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

相关文章
|
1月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
190 0
|
3月前
|
存储 测试技术 虚拟化
VMmark 4.0.3 - 虚拟化平台基准测试
VMmark 4.0.3 - 虚拟化平台基准测试
80 0
VMmark 4.0.3 - 虚拟化平台基准测试
|
2月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
89 0
|
3月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
650 23
|
4月前
|
安全 前端开发 Linux
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
137 3
Immunity CANVAS Professional 7.27 (macOS, Linux, Windows) - 渗透测试和漏洞利用平台
|
3月前
|
测试技术 Python
Python测试报告生成:整合错误截图,重复用例执行策略,调整测试顺序及多断言机制。
如何组织这一切呢?你可以写一本名为“Python测试之道”的动作指南手册,或者创建一个包含测试策略、测试顺序、多断言机制的脚本库。只要你的测试剧本编写得足够独到,你的框架就会像一位执行任务的超级英雄,将任何潜伏于代码深处的错误无情地揪出来展现在光天化日之下。这些整理好的测试结果,不仅有利于团队协作,更像冒险故事中的精彩篇章,带给读者无尽的探索乐趣和深刻的思考。
92 10
|
5月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
537 24
|
5月前
|
人工智能 自然语言处理 测试技术
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
Codex CLI是OpenAI推出的轻量级AI编程智能体,基于自然语言指令帮助开发者高效生成代码、执行文件操作和进行版本控制,支持代码生成、重构、测试及数据库迁移等功能。
626 0
自然语言生成代码一键搞定!Codex CLI:OpenAI开源终端AI编程助手,代码重构+测试全自动
|
8月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
211 2