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

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

相关文章
|
24天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
2月前
|
JSON 搜索推荐 网络协议
玩转curl指令—测试简单的HTTP接口
玩转curl指令—测试简单的HTTP接口
51 0
|
28天前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 1
|
1月前
|
Java 测试技术
单元测试编写可测试代码
单元测试编写可测试代码
19 2
|
2月前
|
开发框架 JSON .NET
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
72 0
|
2月前
|
测试技术
Lim测试平台测试报告说明
Lim测试平台测试报告说明
32 2
|
2月前
|
SQL 测试技术 数据库连接
Lim接口测试平台-接口测试功能详解
Lim接口测试平台-接口测试功能详解
39 1
|
9天前
|
测试技术 C语言
网站压力测试工具Siege图文详解
网站压力测试工具Siege图文详解
18 0
|
1月前
|
JavaScript jenkins 测试技术
这10款性能测试工具,收藏起来,测试人的工具箱!
这10款性能测试工具,收藏起来,测试人的工具箱!