requests payload_python+Requests接口自动化测试之传递 URL 参数
Requests传递 URL 参数:
你也许经常想为 URL 的查询字符串(query string)传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如,http://www.bcbxhome.com/bcbxxy/search.php?key=val。
Requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数。举例来说,如果你想传递 key1=value1 和 key2=value2 到http://www.bcbxhome.com/bcbxxy/search.php,那么你可以使用如下代码:
- >>> payload = {'key1': 'value1', 'key2': 'value2'}
- >>> r = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
复制代码
实战操作一下吧:
- >>>payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': '接口自动化'}
- >>>r = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
复制代码
通过打印输出该 URL,你能看到 URL 已被正确编码:
- >>> print(r.url)
- http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96
复制代码
注意字典里值为 None 的键都不会被添加到 URL 的查询字符串里。
- >>>payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': None}
- >>> r = requests.get('http://httpbin.org/get', params=payload)
- >>> print(r.url)
- http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes
复制代码
你还可以将一个列表作为值传入:
- >>> payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': ['接口','自动化']}
- >>> r = requests.get('http://httpbin.org/get', params=payload)
- >>> print(r.url)
- http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=%E6%8E%A5%E5%8F%A3&kw=%E8%87%AA%E5%8A%A8%E5%8C%96
复制代码
完整代码如下:
- import requests
- payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': '接口自动化'}
- result = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
- print(result.url)
- payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': None}
- result = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
- print(result.url)
- payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': ['接口','自动化']}
- result = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
- print(result.url)
复制代码
对应结果如下:
- http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96
- http://www.bcbxhome.com/bcbxxy/s ... sc&searchsubmit=yes
- http://www.bcbxhome.com/bcbxxy/s ... A%E5%8A%A8%E5%8C%96
复制代码
有没有疑问为啥kw后面的汉字变成了%+英文+数字?
这个叫url编码,这里就不展开细讲了可以去这里尝试一下http://www.jsons.cn/urlencode/
requests payload_python+Requests接口自动化测试之传递 URL 参数相关推荐
- php url传递参数_python+Requests接口自动化测试之传递 URL 参数
Requests传递 URL 参数: 你也许经常想为 URL 的查询字符串(query string)传递某种数据.如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的 ...
- url中传递url参数|url中特殊字符、?、=无法解析问题
url中传递url参数|url中特殊字符&.?.=无法解析问题 1.微信小程序报错:SyntaxError: Unexpected end of JSON input 2.错误场景复现 3.错 ...
- 【接口自动化学习笔记】python+requests+excel实现接口自动化
文章内容参考:pytest+requests+Excel+allure接口自动化测试框架实践_JJJims的博客-CSDN博客 功能 excel驱动的接口自动化+邮件发送 背景 参考了上 ...
- 【30天学会接口自动化测试】接口自动化测试之框架设计(五)
整理了一些软件测试方面的资料.面试资料(接口自动化.web自动化.app自动化.性能安全.测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~ 如果有100个测试用例,重复的去 ...
- 【30天学会接口自动化测试】接口自动化测试之实际项目做接口测试(6)
整理了一些软件测试方面的资料.面试资料(接口自动化.web自动化.app自动化.性能安全.测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~ 1.从实际项目出发分析测试结果处 ...
- 接口自动化测试之Mock
一.Mock实现原理和实现机制 在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢? 我们需要测试,但是有些请求又需要修改一下参数,或者改变一下r ...
- jemeter python接口自动化测试平台_python接口自动化测试之request
之前小编写过Rest-assuert接口测试框架,它是基于java的,那么怎么轻轻松松玩转python接口自动化测试呢?今天小编就写写如何使用python Request进行接口自动测试. 学习任何一 ...
- 接口自动化测试之pytest用例管理框架
一.pytest用例管理框架 文档:https://docs.pytest.org/en/latest/contents.html#toc 第三方库:https://pypi.org/search/? ...
- 接口自动化测试之接口测试基础
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 文章目录 一.分层的自动化测试 1.传统自动化测试 2.测试金字塔 3.分层自动化测试 二.接口测试基础知识 1.接口的含义 2. ...
最新文章
- python集合中的元素不允许重复对吗_python字典中的值为什么不允许重复
- elegance suites bangkok info
- linux命令 - free -m
- LINUX下使用elasticsearch-jdbc工具实现MySQL同步到ElasticSearch 以及linux 64位centos系统安装jdk1.8
- 将存储过程的结果插入表里
- docker 删除image_如何用两个小时入门 Docker?
- php读数据库json编码,php json编码和mysql数据库注意事项 定期更新
- c#类属性和实例属性_C#中类的序列化及反序列化简要分析
- 小米6.0以上系统怎么无需root激活Xposed框架的步骤
- NoSQL之MongoDB安装
- Mac M1 安装 iTerm2+Oh My Zsh+zsh-syntax-highlighting 真香!
- 利尔达携手紫光展锐重磅发布5G R16模组,领跑5G To B新纪元
- 阴天快乐 -- 陈奕迅(eason)
- Nod32升级服务器(转)
- execve系统调用_系统调用execve的入口sys_execve() | 学步园
- Linux下视频转换工具:转换,切割,连接,
- Ansys电磁仿真套件的场路协同仿真
- 联想电脑,Windows11系统,键盘突然无法输入
- 2021年幼儿教师结构化面试:小朋友不乖,怎么与家长沟通?
- 在ArcGIS中创建Python工具(一)