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


相关文章
|
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) - 渗透测试和漏洞利用平台
|
5月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
537 24
|
5月前
|
存储 jenkins 测试技术
Apipost自动化测试:零代码!3步搞定!
传统手动测试耗时低效且易遗漏,全球Top 10科技公司中90%已转向自动化测试。Apipost无需代码,三步实现全流程自动化测试,支持小白快速上手。功能涵盖接口测试、性能压测与数据驱动,并提供动态数据提取、CICD集成等优势,助力高效测试全场景覆盖。通过拖拽编排、一键CLI生成,无缝对接Jenkins、GitHub Actions,提升测试效率与准确性。
347 11
|
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