接口测试平台代码实现44:发送请求-1

简介: 终于开始了正式写到发送请求的模块了。

微信图片_20220620125759.png本节结尾会放上最新的项目代码 网盘地址

我们首先打开我们上次没写完的api_send后台函数:

微信图片_20220620125736.png我们梳理一下思路:

现在我们已经拿到了接口的所有请求数据。已经完全可以进行一次请求了。

但是因为编码格式的不同,请求的代码也稍微有些不同。

所以这里的请求我们要用if来逐个判断编码格式

(ps:在之后的章节我们会加入很多功能,全局host/header/加密算法/登陆态/全局变量/预置变量/文件上传/证书/代理/等等很多很多,基本都要在这个函数中进行处理。大家也不要总问什么时候才能结束了,一个平台可不是一个简单的脚本/或一个小功能,它基本不会有结束的时候,而会一直的迭代更新优化下去。当然什么时候可以用起来呢?全看你的需求是什么了。最简单的管理项目和接口并能发出请求调试保存的基础功能,那么很快就可以完工投入使用了。注意目前第一阶段的各种编码格式调用并不是最完善的,只是最简单能达到效果的调用方法,后期章节会逐渐完善。)

首先在views.py文件开头导入requests模块:微信图片_20220620125743.png


   注意,header应该是json格式,但是我们从前端拿到的是字符串,所以我们要在最开始获取的时候直接把header从字符串转变为字典。微信图片_20220620125751.png

然后我们还要处理好完整的url,也就是host + url。而且要处理好使用者常犯的错误:

拼接时容易出现俩个/

如下所示:

正确的 :  

host = 'http://www.xxx.com 注意结尾没有/

url = '/abc/def'  注意开头有/

拼接后 :  http://www.xxx.com/abc/def

常出现的错误:

host = 'http://www.xxx.com/ 注意结尾有/

url = '/abc/def'  注意开头有/

拼接后 :  http://www.xxx.com//abc/def  拼接处出现重复的/

host = 'http://www.xxx.com 注意结尾没有/

url = 'abc/def'  注意开头没有/

拼接后 :  http://www.xxx.comabc/def  拼接处出没有/

所以我们要简单的处理一下再拼接:微信图片_20220620125759.png

url就是我们最后得到的完整url,后续发送请求全直接使用url


   然后我们先写一个最简单的 当编码方式为 none时的情况:

微信图片_20220620125806.png

其中的请求方式,get还是post这种,都是直接传入大写字符串即可如:'GET' 'POST' , 所以我们传入的就是ts_method.upper()

   然后我们去写form-data:微信图片_20220620125813.png

其中的fiels是文件流,我们后续会对其进行补充,暂时就先忽略这个功能。

paylaod是一个字典,把我们的字符串格式的二元列表转变成字符串。


   然后我们去写x-www-form-urlencoded:

微信图片_20220620125821.png

注意需要修改了请求头header中的content-type


   然后我们去写raw的五个小弟弟:

这五个的请求代码基本一致,只有请求头的参数不同。所以我们简便写一下:微信图片_20220620125828.png

注意这里是else开头了。

当我们全部写完后,发现,肯定会声明一个response变量,这就是接口这次请求的引用,我们可以从它身上拿到我们想要的一切,如返回体,http状态码,响应时间等等。

我们把这个返回体获取到然后返回给前端即可(删掉上节写死的返回体)微信图片_20220620125835.png

好了。简单看看有没有报错:微信图片_20220620125842.png

我随便输入的host和url,返回体是404找不到这个页面,目前看来是没有报错,证明我们的链路都打通了。


但是这不代表这可以直接使用了,因为很多很多异常处理我们都没有做,正常使用中体验会很差。所以下节课我们会针对各种异常情况作出处理,比如没写host啊,超时啊,使用者不知道现在是否请求中等等。


相关文章
|
29天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
2月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
127 2
|
2月前
|
测试技术
包含用例执行时间的测试报告代码
包含用例执行时间的测试报告代码
|
14天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 1
|
1月前
|
Java 测试技术
单元测试编写可测试代码
单元测试编写可测试代码
19 2
|
2月前
|
测试技术
Lim测试平台测试报告说明
Lim测试平台测试报告说明
32 2
|
2月前
|
SQL 测试技术 数据库连接
Lim接口测试平台-接口测试功能详解
Lim接口测试平台-接口测试功能详解
40 1