接口测试平台代码实现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啊,超时啊,使用者不知道现在是否请求中等等。


相关文章
|
2月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
72 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
4天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
30 11
|
22天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
52 1
|
1月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
1月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
60 3
|
1月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
133 1
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
77 2
|
1月前
|
监控 安全 测试技术
构建高效精准测试平台:设计与实现全攻略
在软件开发过程中,精准测试是确保产品质量的关键环节。一个高效、精准的测试平台能够自动化测试流程,提高测试覆盖率,缩短测试周期。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
64 0
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
77 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
263 7
Jmeter实现WebSocket协议的接口测试方法
下一篇
DataWorks