接口测试平台代码实现77: 多接口用例-17

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

首先恭喜下Testerhome大会开幕,并且我们社团在testerhome的百团大战中名列前三。

   其次是平台的在线体验地址发布:

阿里云服务器:http://47.97.77.125:8000/home/

用户名:admin

密码:123456

你也可以自己在登陆页面注册新的。


 言归正传


   到了本节,我们已经完成了基本的大用例执行框架的一部分。已经在那个demo函数中 获取到了步骤step的一切数据。

   剩下的代码大概有几部分:

  1. 提取步骤所有请求数据和断言/参数化提取 设置
  2. 检查请求数据中是否有需要进行承接上一个接口返回值参数化的字段,有则替换,无则过。
  3. 进行requests请求,拿到返回值
  4. 对返回值进行参数化提取和断言


其实这里我们要对所有接口的请求参数中,需要获取到之前接口提取的参数的字段的值,进行标记或者说占位准备替换,就好比html中,我们用 {{ apis }} 来表示这里是接口一样。

   但是{{ }} 在html中有着标准的规范,规则。而在我们的请求数据中,用此占位则很危险,请求数据中可能会出现各种各样的字符串,很容易被我们的程序识别成占位符。所以我们要用一套新的 不经常出现的/而且易于输入的 符号表示。这里我用的: ##参数名## 来代替。当然要是有其他的也可以。

 

   所以我们第一步,要提取出来所有的数据。

微信图片_20220625105143.png

接下来就是检查是否需要替换那些##参数名##了:

 首先就是找出所有符合的替换参数,所以用正则再好不过了,我们在开头引入re:微信图片_20220625105159.png

我们要替换的请求数据中的位置基本只有三处:头,体,ulr:

微信图片_20220625105206.png

整理出来这三个列表,rlist_url/header/body。

然后我们依次进行替换:

微信图片_20220625105220.png

全部忠实替换好,其中的eval就很显然的是 去获取那些变量了。不过目前这里的代码并不是最终版,等我们全写完是要改一点的。


然后我们继续去写调用requests发送请求:

先在顶部引入json和requests

微信图片_20220625105241.png

下面代码较长,比较类似接口库请求,大家简单理解下然后本节末尾复制粘贴这个完整函数吧:

微信图片_20220625105247.png

注意代码可能会后续更改,我们暂且继续写下一个段落-对返回值进行参数化提取和断言:

微信图片_20220625105252.png

我们已经拿到了 我们的提取/断言设置,然后进行公式带入,就可以完成了。

但是我们 现在还没有对提取 / 断言 的几种方式 制定规则。


所以我们回到P_cases.html中,好好想想规则。这里我就直接套用我之前设计过的规则了,也欢迎大家集思广益,想出更合理的规则:

微信图片_20220625105301.png

我们先来设计提取返回值路径法:

由用户 按规则 写入  即将被作为参数名的字符串=路径 这种方式提取,多个用换行分隔

例子如:

name=/data/[3]/username

id=/data/[2]/userid


然后用户如何使用呢?在后续接口的请求url/body/header中,用##name## 和 ##id## 来占位。


比如 url 写:/aaa/bb?index=zsd&uname=##name##&uid=##id##

然后经过第一个接口请求后,提取真实结果,并替换就变成来:

/aaa/bb?index=zsd&uname=wangzijia&uid=00100


所以我们先把这个规则,放在多行文本框的中的默认文案里:

微信图片_20220625105323.png微信图片_20220625105329.png

后续4个多行文本框均用此方式即可。

然后我们继续另一个提取正则法的规则设置:

微信图片_20220625105353.png微信图片_20220625105359.png

如上图,我们等号右侧采用 左边界(.*?)右边界的方式存储。这样我们代码中实际提取的时候 也方便了很多。


好了,本节到此结束,欢迎持续关注。代码已上到github大家可以去复制粘贴

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