A07_HttpRunner重定向_04_解决方案

既然 HttpRunner 是对 requests 模块的封装,那我们就试图从 requests 中寻找答案,在其官网中发现了对重定向的描述和处理:

地址:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html#id9

提到:

  • 默认情况下,除了 HEAD, Requests 会自动处理所有重定向。
  • 可以使用响应对象的 history 方法来追踪重定向。
  • 如果你使用的是GET、OPTIONS、POST、PUT、PATCH 或者 DELETE,那么你可以通过 allow_redirects 参数禁用重定向处理

做个试验:

  • 在 post 请求方法中添加 “allow_redirects=False”参数项
  • 打印获取到的 cookie
import requestsdef get_cookies():    url = 'http://192.168.1.102/wordpress/wp-login.php'    p_data = {'log': 'admin', 'pwd': '123456'}    # 添加禁止重定向的参数    r = requests.post(url, data=p_data, allow_redirects=False)    print(r.status_code)    print(r.cookies)if __name__ == "__main__":    get_cookies()

执行后输出:

可以看出请求后没有自动进行重定向,而且输出了我们期盼已久的 cookie 内容。

D:A00__DevpyvirtualenvhrunScriptspython.exe D:/A00__Dev/pyprojects/wordpress/getcookie.py302, , , ]>Process finished with exit code 0

HttpRunner 中对请求的封装,是通过统一调用 request() 方法来完成的:

requests.request(method, url, **kwargs)

接下来我们就将“allow_redirects=False”参数项添加到测试用例中

- config:    name: WordPress 博客系统- test:    name: WP_login_no_redirect    request:      url: http://192.168.1.102/wordpress/wp-login.php      method: POST      data:        log: admin        pwd: 123456      # 禁止重定向         allow_redirects: False    extract:      - a: cookies.wordpress_test_cookie      - b: cookies.wordpress_logged_in_6e644cc1baf05aba48f07f1ff2ed9bad      - d: cookies.wordpress_6e644cc1baf05aba48f07f1ff2ed9bad    validate:      - eq: [status_code, 302]

验证用例:

执行用例,成功。说明提取指定 cookie 的操作和 302 状态的断言都成功。

查看测试报告日志:预期结果和实际结果都是302,证明禁止重定向成功。

最后,我们从 httprunner 源码中也可以找到以上方式的印证

httprunnerloaderschemascommon.schema.json 请求规范:

  • 在测试用例 request 下可以使用 “allow_redirects”属性
  • 该属性支持的请求方法为:GET / OPTIONS / POST / PUT / PATCH / DELETE / HEAD
  • 该属性默认值为:True (自动进行重定向)
"request": {    "description": "used to define a api request. properties is the same as python package `requests.request`",    "type": "object",    "properties": {        。。。。。。。。。。。。        "allow_redirects": {                    "description": "Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to True",                    "type": "boolean"        },       。。。。。。。,。。。。。 

vb 6.0 获取重定向的url_接口测试:A07_HttpRunner重定向_04_解决方案相关推荐

  1. vb 6.0 获取重定向的url_免费CloudFlare CDN真香,个人站点加速+Https证书+重定向

    之前,楼主分享了[Azure静态Web应用]真香,免费囤货个人站点,按教程操作完,大家将获取到一个香港数据中心的个人站点,整体访问速度也不错.不过也有一些不足之处,比如站点公网IP地址对外暴露.Azu ...

  2. 使用VB 6.0使用XML和文本文件进行数据管理:第一部分

    续自: http : //www.thescripts.com/forum/thread762010.html -VB 6.0专业版 -Microsoft DAO 3.6参考 搜索数据库表... 尝试 ...

  3. VB 6.0中如何访问EXCEL 2007及EXCEL 2010

    问题及分析过程 最近一段时间在使用VB 6.0开发一个OFFICE考试系统,理想的情况是支持WINDOWS XP,WINDOWS 7,WINDOWS 8,Office 2003和Office 2010 ...

  4. struts2.0获取各种表单的数据

    转自:http://www.2cto.com/kf/201107/97883.html 后台代码: 1 import java.util.List; 2 import com.opensymphony ...

  5. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  6. HttpURLConnection获取百度搜狗360搜索链接重定向真实目标链接地址url

    本人原创测试了百度,搜狗,360搜索都可以获取重定向后的真实地址,直接运行就可以,也可以根据自己项目具体修改功能.java使用HttpURLConnection获取百度搜狗360搜索链接重定向真实目标 ...

  7. android u盘地址,android 9.0 获取U盘路径

    /** * android 9.0获取外置sdcard和U盘路径,并区分 * * @param mContext * * @param keyword  SD = "内部存储"; ...

  8. vb 6.0编程错误

     vb 6.0编程错误 Private Function 验证当前窗口(窗口 As 程序_窗口验证.窗口参数) As Boolean     Dim hwndS() As Long     Dim T ...

  9. brLindo.WhatsBestn.vb v15.0.1.0 1CD 辑擎内NET案

    brLindo.WhatsBestn.vb v15.0.1.0 1CD 辑擎内NET案Infralution Globalizer Developer v3.9       最新版还支持更多的高级特性 ...

最新文章

  1. [经典算法] 八枚硬币
  2. 由浅到深了解JavaScript类
  3. 手动抽油机_察雅县抽油机钢丝绳橡胶皮带生产厂家
  4. readfile读取串口数据_西门子PLC-1200-串口Modbus RTU通讯实例
  5. 修复虚拟磁盘LVM表
  6. 基于python的随机森林回归实现_随机森林理论与python代码实现
  7. k8s高可用集群_搭建高可用集群(实现方式介绍)---K8S_Google工作笔记0054
  8. 基于标记不确定性和类别不平衡的语义分割在植被制图中的应用(soybean+FCN_segNet+newloss)
  9. python调用vb文件_vb能配合python写程序么?
  10. Barrage 弹幕实现原理
  11. 软件工程总结笔记——软件详细设计(五)
  12. 电机与电力拖动系统的仿真技术matlab/simulink(1)
  13. 整车控制器(VCU)策略及开发流程
  14. python中count什么意思_python中函数COUNT()的功能是什么
  15. Vben Admin 安装依赖l 安装报错:Error: command failed: c: \WINDOWS\system32\cmd.exe /s /c autoreconf -ify 解决办法
  16. 特步公布全新战略定位世界级中国跑鞋;电通集团计划过渡到新的全球集成领导架构 | 美通企业日报...
  17. 【mathematica画三维空间坐标系箭头】
  18. php日期转微秒,使用PHP生成独特的微秒级
  19. UE5神通--POI解决方案
  20. Java SE 059 类型安全的枚举

热门文章

  1. 下拉列表与多选框以及GridView中的多选框的问题
  2. Java笔记-字符串编码与解码以及编码表原理
  3. 在哪里定义_创意设计学院举办设计从哪里来,到哪里去”专题讲座
  4. php数组去空函数怎么写,分享php数组去除空值函数
  5. vc设备工程师_4注册公用设备工程师专业基础考试真题.
  6. 深度学习之基于LeNet-5实现cifar10的识别
  7. 【阿里妈妈营销科学系列】开篇:C.M.O——“人群.渠道.机会”营销分析导论
  8. android 设置对话框的高度,如何控制Android中默认警报对话框的宽度和高度?
  9. 如何防止token被拦截_Spring Boot+Redis+拦截器+自定义Annotation实现接口自动幂等
  10. 【计算机组成原理】定点除法运算