接口测试平台代码实现131: 全局变量-10

简介: 本节开始要进入比较烧脑的阶段了,请系好安全带,中途跳车的请刷卡。

我们在之前章节已经把变量组 的增删改查 都弄好了。接下来就是应用到实际的请求中了。


那么我首先拿项目的接口库普通接口调试 开刀吧:

微信图片_20220706094910.png

我为了之后的拆分方便,新建了一个专门用来存放公共方法的py文件。

然后写好需要使用的方法导入:

微信图片_20220706094917.png

现在我们开始写一个方法,用来 替换url,header,请求体中的全局变量。

之后我们的用例库用例调试/异常测试/用例库用例执行等全都要调用它~


具体代码如下:

# 替换全局变量
def global_datas_replace(project_id:str,s:str) -> str :
    #根据项目变量去获得生效的变量组。
    global_data_ids = DB_project.objects.filter(id=project_id)[0].global_datas.split(',') #获取所有生效的变量组id
    global_datas = {}
    for i in global_data_ids:
        global_data = ast.literal_eval(list(DB_global_data.objects.filter(id=i).values())[0]['data'])
        global_datas.update(global_data)
    # 最终的gloabl_datas就是总变量池字典了
    #用正则找出所有需要替换的变量名称。
    # 处理url/header/data
    list_data = re.findall(r'~(.*?)~',s)
    for i in list_data:
        s = s.replace('~'+i+'~',str(global_datas[i]))
    #返回结果。
    return

其中利用了 字典更新,遍历替换 等方法,其中暂时全用字符串形式进行完成,后续可能会有变动。

(ps: 这个方法是非常有优化价值的方法,首先几乎所有的请求都会调用它不止一次,而且其中的优化空间非常大,博主只是写了个好理解的方法。正好给大家提供了素材,想写文章优化的抓紧了。)

然后我们去views.py中顶部 引入这个方法:

微信图片_20220706094923.png

然后我们先来测试下url替换好不好使

微信图片_20220706094928.png注意上图中,我利用api_id 找出了project_id,然后 给ts_url进行替换并打印。


再去做好俩个变量组:

微信图片_20220706094934.png微信图片_20220706094941.png

然后弄个简单的测试接口,我们只测试url就可以了:

微信图片_20220706094950.png

其中加入了俩个变量。然后请求看看效果:

微信图片_20220706095003.png

可以看到,url替换是成功了。

那么本节内容到此结束,欢迎小伙伴 继续关注~

相关文章
|
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编程助手,代码重构+测试全自动
|
5月前
|
SQL 测试技术
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
211 2
|
6月前
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。