【pytest】接口自动化:Requests如何设置代理,访问内网接口requests.exceptions.ConnectTimeout: HTTPSConnectionPool

本文主要是介绍【pytest】接口自动化:Requests如何设置代理,访问内网接口requests.exceptions.ConnectTimeout: HTTPSConnectionPool,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言:网络有代理时,使用requests.get()等请求,会提示超时。在请求中加入代理设置,则可以正常使用。

一、问题截图如下:

E                   requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='xxxx.com', port=443): Max retries exceeded with url: /usersLogin/login (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000001E3772791E0>, 'Connection to 10.37.84.94 timed out. (connect timeout=None)'))
 

二、原因:

我是在公司内网环境访问外网域名,在连接的时候报错,无法连接,超时;后来定位到是由于公司的网络拦截导致,需要设置代理

三、Requests设置代理:

class TestLogin(CommonUtil):@pytest.mark.parametrize('caseinfo',read_yaml_testcase('testcase/test_login.yaml'))def test_login_01(self,caseinfo):print("\n测试01号登录成功")print(caseinfo)name = caseinfo['name']method = caseinfo['request']['method']url =  caseinfo['request']['url']data = caseinfo['request']['data']header= caseinfo['request']['headers']validate = caseinfo['validate']proxy = {'http':'http://username:password@ip:port','https': 'https://username:password@ip:port'}res = RequestsUtil().send_all_request(method= method, url=url,headers=header, data=data,proxies=proxy)

1、设置http和https代理,根据接口是http请求或者是https请求,进行对应的设置(也可以两个都写上)

2、ip:port,代理服务器的ip和端口,由代理服务器来将请求发送给目标服务器

3、username:password:代理网络的用户名和密码,有些需要填,有些不需要填,如果不知道的话,可以先不填试试

# 1:普通的代理proxies = {"http":"http://12.34.56.79:9527","https":"https://12.34.56.79:9527"}
res = requests.get(url="http://www.baidu.com",proxies=proxies)
print(res.content.decode("utf-8"))# 2:携带登录的用户名和密码
proxies1 = {"http":"http://用户名:密码@12.34.56.79:9527","https":"https://用户名:密码@12.34.56.79:9527"}
res = requests.get(url="http://baidu.com",proxies=proxies1)
print(res.content.decode("utf-8"))

这篇关于【pytest】接口自动化:Requests如何设置代理,访问内网接口requests.exceptions.ConnectTimeout: HTTPSConnectionPool的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/842897

相关文章

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Linux:alias如何设置永久生效

《Linux:alias如何设置永久生效》在Linux中设置别名永久生效的步骤包括:在/root/.bashrc文件中配置别名,保存并退出,然后使用source命令(或点命令)使配置立即生效,这样,别... 目录linux:alias设置永久生效步骤保存退出后功能总结Linux:alias设置永久生效步骤

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修