我需要通过修改IP来发送请求,完成一个功能测试。于是想到了用自动化,先打开Chrome浏览器,然后修改IP信息。但是IP是加密的,所以每次自动化脚本都会卡住,需要手动输入账户、密码才...
我需要通过修改IP来发送请求,完成一个功能测试。于是想到了用自动化,先打开Chrome浏览器,然后修改IP信息。但是IP是加密的,所以每次自动化脚本都会卡住,需要手动输入账户、密码才能继续。所以想问下大家,selenium+python有没有办法修改加密的IP,让我不用每次都手动输入账户、密码。当然如果有其他的方法,我也可以接受,但必须基于python、jmeter。需求就是:修改代理IP,通过代理服务器,将请求发送出去,仅此而已。另外我也试过用jmeter修改代理IP,然后再发送请求。亲测可行,但是我的IP有很多,jmeter不能将代理参数化,所以我放弃了。如果有大神可以将jmeter参数化,我也能接受。总而言之,用python、jmeter实现了我的需求,我都接受,其他办法不采纳
恕我直言,B,DU除了会卖假药,真的没其他的了,等了很久,都没人能解答。
问题已经解决了,其实很简单。
如果使用selenium+python的方法也可以,但相当麻烦。所以可以用另外一种更简单的方法,就是python导入requests,通过requests修改IP,并自动输入该IP的验证账户、密码(但这些不是图形自动化,不能直观的让你看到它修改的过程,实际后台已经修改了),改完IP后,再通过这个IP,将我的请求发送出去。这样就实现了,我一个请求可以通过不同的IP发送。话不多说,直接上代码,有看不懂的,可以直接去看requests官方文档,或者直接私聊我。
#-*- coding:utf-8 -*-
import requests
def ip():
print ('\n正在读取文件夹的IP')
with open('C:\\ip.txt') as file_object:
for line in file_object:
yield str.strip(line)
def http():
for i in ip():
IP = "%s%s%s" % ("http://账户:密码@",i,":端口")
proxies = {
'http':IP
}
r = requests.get(url='填入你需要发送的请求',proxies=proxies)
print ('状态:',r.status_code)
#print ('服务器响应:')
print (r.text,'\n')
if __name__ == '__main__':
for x in range(1,2):
http()
展开