news 2026/4/22 16:43:15

2种方法,教你使用Python实现接口自动化中的参数关联

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2种方法,教你使用Python实现接口自动化中的参数关联

通常在接口自动化中,经常会参数关联的问题,那么什么是参数关联?

参数关联就是上一个接口的返回值会被下一个接口当做参数运用,其中Python中可以实现参数关联的方法有很多种,今天小编给大家介绍下,如何通过Python来实现接口自动化中的参数关联。

UnitTest

虽然说目前Pytest框架比较流向,但是目前应该有绝大部分公司还是在使用UnitTest框架,那么小编先介绍下如何通过UnitTest来实现接口自动化的参数关联。

方法一

下面小编通过测试用例返回参数的形式进行实现参数关联。

  1. # coding:utf-8

  2. import requests

  3. import unittest

  4. class Test(unittest.TestCase):

  5. def test_01(self):

  6. '''查询天气接口测试用例'''

  7. url = 'http://apis.juhe.cn/simpleWeather/query'

  8. data = {

  9. 'city': '上海',

  10. 'key': 'xxxxxxxxxxxx'

  11. }

  12. r = requests.post(url, data=data).json()

  13. info = r['result']['realtime']['info']

  14. print(info)

  15. return info

  16. def test_02(self):

  17. '''查询字典测试用例'''

  18. a = self.test_01()

  19. url = 'http://v.juhe.cn/xhzd/query'

  20. data = {

  21. 'word': a,

  22. 'key': 'xxxxxxxxxxxx'

  23. ''

  24. }

  25. r = requests.post(url,data=data)

  26. result = r.json()

  27. print(result)

  28. if __name__ == '__main__':

  29. unittest.main()

通过使用上述方法返回的结果来进行供给下一个接口使用,不会因为执行顺序所影响,但是就是会把上面的的用例多执行一遍。可以通过下方执行结果看出,已经成功的实现了接口关联。

方法二

小编在这里使用一种全局变量的方法,我们先定义一个名称,然后用这个名称去接收我们即将返回的参数值,最后在下一条用例中进行使用。

  1. # coding:utf-8

  2. import requests

  3. import unittest

  4. class Test(unittest.TestCase):

  5. def test_01(self):

  6. '''查询天气接口测试用例'''

  7. global info

  8. url = 'http://apis.juhe.cn/simpleWeather/query'

  9. data = {

  10. 'city': '上海',

  11. 'key': 'xxxxxxxxxxx'

  12. }

  13. r = requests.post(url, data=data).json()

  14. info = r['result']['realtime']['info']

  15. print(info)

  16. def test_02(self):

  17. '''查询字典测试用例'''

  18. url = 'http://v.juhe.cn/xhzd/query'

  19. data = {

  20. 'word': info,

  21. 'key': 'xxxxxxxx'

  22. ''

  23. }

  24. r = requests.post(url,data=data)

  25. result = r.json()

  26. print(result)

  27. if __name__ == '__main__':

  28. unittest.main()

通过运行上述代码,发现已经成功将天气接口中的参数“晴”提出来,然后供下一个接口进行查询。

Pytest

介绍完UnitTest了,那么小编来介绍下如何通过Pytest来进行实现参数关联,其实原理都是一样的,只不过小编多介绍几种类似的方法。​​​​​​​

  1. # coding:utf-8

  2. import requests

  3. import re

  4. def test_01():

  5. '''查询天气接口测试用例'''

  6. url = 'http://apis.juhe.cn/simpleWeather/query'

  7. data = {

  8. 'city': '上海',

  9. 'key': 'xxxxxxxx'

  10. }

  11. r = requests.post(url, data=data).json()

  12. # 通过正则获取想要的数据

  13. a = re.findall("'info': '(.*?)', 'wid': '00', ", str(r))

  14. info = globals()['info'] = a[0]

  15. print(info)

  16. def test_02():

  17. '''查询字典测试用例'''

  18. url = 'http://v.juhe.cn/xhzd/query'

  19. data = {

  20. 'word': globals()['info'],

  21. 'key': 'xxxxxxx'

  22. ''

  23. }

  24. r = requests.post(url,data=data)

  25. result = r.json()

  26. print(result)

上述测试用例中,小编使用了globals()函数用来获取全局作用域,结果通过字典的形式进行返回,而且小编通过获取下一个借口的参数值时,使用了正则表达式的提取,形成了多种方法均可实现我们的功能。

总结

小编分别通过Pytest和UnitTest两种框架介绍了在做接口测试时,如何通过全局变量的形式进行参数关联,其中也分别介绍了提取参数值时也采用了不同的方法,小伙伴们可以自己动手尝试下。

如果有更好的方法也可以进行留言,大家一起参考学习,当然至于怎么运用到公司项目中,这个就要看小伙伴们对参数关联和全局变量的掌握以及项目实际情况来看了,感谢您的阅读,希望本篇文章对您有所帮助。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 1:57:29

完整指南:MySQL与PostgreSQL触发器调试技巧

深入数据库内核:MySQL 与 PostgreSQL 触发器调试实战全解析你有没有遇到过这样的场景?一条看似正常的INSERT语句突然报错“库存不足”,但查遍应用代码却找不到任何校验逻辑;或者发现某张表的更新总是慢得离谱,排查半天…

作者头像 李华
网站建设 2026/4/18 6:46:41

PyTorch开发踩坑记录:正确使用镜像才能发挥最大效能

PyTorch开发踩坑记录:正确使用镜像才能发挥最大效能 1. 引言:为什么选择合适的开发镜像是关键 在深度学习项目中,环境配置往往是开发者面临的第一个挑战。一个不兼容或配置不当的环境可能导致训练失败、性能低下甚至系统崩溃。本文基于实际…

作者头像 李华
网站建设 2026/4/18 10:54:01

基于协同过滤算法的美食点餐分享推荐系统小程序

目录协同过滤算法在美食点餐推荐系统中的应用系统架构与功能设计技术实现与优化应用价值与展望项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作协同过滤算法在美食点餐推荐系统中的应用 协同过滤算法通过分…

作者头像 李华
网站建设 2026/4/18 17:15:46

基于微信小程序的家政服务平台

目录微信小程序家政服务平台摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作微信小程序家政服务平台摘要 微信小程序家政服务平台是基于移动互联网技术的便捷服务解决方案,旨在为用户提供高…

作者头像 李华
网站建设 2026/4/16 22:41:33

高考志愿填报推荐系统vue

目录高考志愿填报推荐系统Vue摘要项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作高考志愿填报推荐系统Vue摘要 高考志愿填报推荐系统基于Vue.js框架开发,旨在为考生提供智能化、个性化的志愿填…

作者头像 李华
网站建设 2026/4/18 4:16:06

中文文本填空避坑指南:用BERT镜像少走弯路

中文文本填空避坑指南:用BERT镜像少走弯路 1. 引言 1.1 业务场景描述 在自然语言处理(NLP)的实际应用中,中文语义填空是一项高频且关键的任务。无论是教育领域的智能题库生成、内容创作中的自动补全,还是语法纠错与…

作者头像 李华