标签分类
技术文章
当前位置:主页 > 计算机编程 > python > Python登录状态进行接口测试

Python登录状态进行接口测试 Python 保持登录状态进行接口测试的方法示例

  • 发布时间:
  • 作者:码农之家原创
  • 点击:114

Python登录状态进行接口测试

这篇文章主要知识点是关于Python,登录状态,接口测试,Python登录状态进行接口测试,Python之POST登录测试 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python编程无师自通
  • 类型:Python3大小:122.4 MB格式:PDF出版:人民邮电出版社作者:科里·奥尔索夫
立即下载

更多相关的学习资源可以参阅 程序设计电子书Python电子书、等栏目。

记录三种添加cookie保持接口登录状态的方法,方便自己回顾。

1.简单粗暴式。

此方法比较小白,前提是已经通过fiddler抓包等方式拿到了cookie,然后直接塞进去。

import requests
 
trainsUrl ='http://XXX.com/trains'
headers = {
  "Content-Type":"application/json;charset=UTF-8",
}
cookies = {
  "XXXthor":"XXXXXX105a42"
}
prames = {
  'depId':'1',
  'arrId':'2',
  'goDate':'XXXX'
}
res = requests.get(url=trainsUrl, cookies=cookies, params=prames, headers=headers).json()

2.从登录接口获取

import requests
 
loginUrl ="http://XXX.com/login"
data1 = {
  "userName":"157XXXX",
  "userPwd":"XXXX"
}
headers = {
  "Content-Type":"application/json;charset=UTF-8"
}
#运行登录接口
loginRes = requests.post(url=loginUrl, json=data1, headers=headers)
trainsUrl ='http://XXX.com/trains'
parames = {
  'depId':'1',
  'arrId':'2',
  'goDate':'1538100286000'
}
#运行trainsUrl接口时,从loginRes中获取cookies
res = requests.get(url=trainsUrl, params=parames, cookies=loginRes.cookies).json()

这种方式是先运行登录接口,然后从loginRes中获取cookies,以供后续接口使用。

3.使用会话对象保持登录---摘自网络

import requests
 
# Session 会话对象
# 会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie
# 会话对象具有主要的 Requests API 的所有方法。你可以当成 Request去使用
sessionRequest = requests.session() #实例化会话对象
loginUrl ="http://XXX.com/login"
data = {
  "userName":"157XXXX",
  "userPwd":"XXX"
}
headers = {
  "Content-Type":"application/json;charset=UTF-8"
}
#第二次请求的url
trainsUrl ='http://XXX/trains'
parames = {
  'depId':'1',
  'arrId':'2',
  'goDate':'XXXXX'
}
#登录
resp = sessionRequest.post(url=loginUrl , json=data, headers=headers)
#请求trains接口
trainsResp = sessionRequest.get(url=trainsUrl, params=parames)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

Python之POST登录测试

不解释,直接上代码:

 1 #!/usr/bin/env python  
 2 # -*- encoding: utf-8 -*-
 3 
 4 """ 
 5 @version: v1.0 
 6 @author: elijahxb
 7 @OS: linux
 8 @contact: elijahxb@163.com 
 9 @site:  
10 @software: PyCharm Community Edition 
11 @file: zhangye.py 
12 @time: 17-7-2 下午12:16 
13 """
14 
15 '''
16 本次登录测试:
17 USERNAME:test001_001
18 PASSWORD:test001
19 URL:   
20 TYPE:  POST
21 HOST:  www.zhangye.ccoo.cn
22 POSTURL:
23 POSTDATA:username=test001_001&password=test001
24 '''
25 import httplib
26 import urllib
27 
28 HOST = '182.92.232.234'
29 SOURCEURL = ""
30 POSTURL = ''
31 PORT = 80
32 STRICT = False  # 默认False,表示无法解析服务器返回的状态行时,是否抛出BadStatusLine异常
33 TIMEOUT = 5
34 HEADERS = {
35     'Content-type': 'application/x-www-form-urlencoded',
36     "Accept": "*/*"
37 }
38 TestDATA = {
39     'username': 'test001_001',
40     'password': 'test001'
41 }
42 TestDATA = urllib.urlencode(TestDATA)
43 
44 try:
45     # Conn = httplib.HTTPConnection(HOST, PORT, STRICT, TIMEOUT, SOURCEURL)
46     HttpClient = httplib.HTTPConnection(HOST)
47     HttpClient.request('POST', POSTURL, TestDATA, HEADERS)
48 
49     response = HttpClient.getresponse()
50     print response.status
51     print response.reason
52     print response.read()
53     print response.getheaders()
54 except Exception, e:
55     print e
56 finally:
57     if HttpClient:
58         HttpClient.close()

以上就是Python之POST登录测试的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的全部知识点内容总结,大家还可以在下方相关文章里找到儿童python编程入门书籍推、 解决axios.interceptors.respon、 vue项目中使用md5加密以及、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:Python3单行定义多个变量或赋值的方法总结

下一篇:python的index函数用法 详解python中的index函数用法

展开 +

收起 -

学习笔记
网友NO.191763

Python之POST登录测试

不解释,直接上代码: 1 # !/usr/bin/env python 2 # -*- encoding: utf-8 -*- 3 4 """ 5 @version: v1.0 6 @author: elijahxb 7 @OS: linux 8 @contact: elijahxb@163.com 9 @site: 10 @software: PyCharm Community Edition 11 @file: zhangye.py 12 @time: 17-7-2 下午12:16 13 """ 14 15 ''' 16 本次登录测试: 17 USERNAME:test001_001 18 PASSWORD:test001 19 URL: 20 TYPE: POST 21 HOST: www.zhangye.ccoo.cn 22 POSTURL: 23 POSTDATA:username=test001_001password=test001 24 ''' 25 import httplib 26 import urllib 27 28 HOST = ' 182.92.232.234 ' 29 SOURCEURL = " " 30 POSTURL = ' ' 31 PORT = 80 32 STRICT = False # 默认False,表示无法解析服务器返回的状态行时,是否抛出BadStatusLine异常 33 TIMEOUT = 5 34 HEADERS = { 35 ' Content-type ' : ' application/x-www-form-urlencoded ' , 36 " Accept " : " */* " 37 } 38 TestDATA = { 39 ' username ' : ' test001_001 ' , 40 ' password ' : ' test001 ' 41 } 42 TestDATA = urllib.urlencode(TestDATA) 43 44 try : 45 # Conn = httplib.HTTPConnection(HOST, PORT, STRICT, TIMEOUT, SOURCEURL) 46 HttpClient = httplib.HTTPConnection(HOST) 47 HttpClient.request( ' POST ' , POSTURL, TestDATA, HEADERS) 48 49 response = HttpClient.getresponse() 50 print response.status 51 print response.reason 52 print response.read() 53 print response.getheaders() 54 except Exception, e: 55 print e 56 finally : 57 if HttpClient: 58 HttpClient.close() 以上就是Python之POST登录测试的详细内容,更多请关注码农之家其它相关文章! ……

网友NO.613583

Python Requests模拟登录实现图书馆座位自动预约

这篇文章主要为大家详细介绍了Python Requests的模拟登录,Python实现图书馆座位自动预约,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python实现图书馆座位自动预约的具体代码,供大家参考,具体内容如下 配置 通过公网主机定时运行脚本,并发送邮件到自己的qq邮箱,这样在微信就会有消息提示是否预约成功 vim /etc/crontab 设置每到早上7:01自动运行脚本即可 程序流程 (以yuyue.juneberry.cn网站为例) get访问登录页面,获取cookie和表单里面的隐藏post字段 构造登录post数据,加入从表单里面拿到的隐藏post字段 post构造后的数据,模拟登录,激活cookie(使cookie有登入权限) get访问座位预约界面,激活cookie(使cookie有预约座位权限) post预约请求,实现预约座位 解析返回结果,判断是否成功,并邮件提醒 要点 requests库中的 requests.session() 能够创建可传递cookies的会话 拿到 input type=hidden 的数据并传递到post的数据中 抓包判断网站逻辑,筛选出各个请求的参数,并在程序中实现 函数解释 class FUCK() 主类 _get_date_str(self): 获取当前日期,并加上一天,用这个函数构造url的特征字段(图书馆设置提前一天预约座位) def _get_order_url(self): 构造"预约座位"的post目标url def _get_static_post_attr: 这个函数解析get请求的返回页面,……

网友NO.701144

对python使用telnet实现弱密码登录的方法详解

系统环境: 64位win7企业版 python2.7.10 2016.08.16修改内容: 1)read_until()函数是可以设置timeout的,之前不能获取到password之后的返回是因为调用read_some()函数次数不够,没有读取到返回信息 2)如果不设置read_until()函数的timeout值,那么程序将一直建立连接而不会关闭,导致程序永远没有返回,所以设置timeout还是有必要的 3)不同服务器返回的内容是不一样的,例如网络设备radware返回就不是"login:",而是"user:",有的password的p是大写的,所以匹配"assword:"比较好。并且,不同服务器返回到的用户密码错误提示也是不一样的,可以在python控制台先试试再去写代码。 def check_23_port(ip,username,passwd): try: tn=telnetlib.Telnet()# #tn.set_debuglevel(0),设置为2可以看到更多信息 tn.open(host=ip) tn.read_until('login:')#这里设置timeout=10比较好,否则如果不能匹配字符串,这个连接将一直建立,程序不会返回 tn.write(username+'\r\n') tn.read_until('password:') tn.write(passwd+'\r\n') tn.read_some()#为result准备数据,可能需要多调用几次才能够获取到服务器返回的信息"Login Failed" result = tn.read_some()#这里调用两次,不同的操作系统返回的不一样,AIX linux返回的是invalid rex = r'Login Failed' tmp = re.search(rex,result) if tmp == None: return True else: return False tn.write("exit\r\n") tn.close() except Exception as e: pass print "c……

网友NO.310827

Python3 Post登录并且保存cookie登录其他页面的方法

如下所示: import urllib.requestimport sysimport http.cookiejarimport urllib.parsefrom bs4 import BeautifulSoupimport codecsimport re#登录页面url = "http://www.abc.com/login.asp"#登录Post数据postdata =urllib.parse.urlencode({ "username":"abc","password":"abc" }).encode('utf-8')#构造headerheader = { "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding":"utf-8", "Accept-Language":"zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3", "Connection":"keep-alive", "Host":"www.abc.com", "Referer":"http://www.abc.com/login.asp", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0" }req = urllib.request.Request(url,postdata,header)#获得cookiecj = http.cookiejar.CookieJar()opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))r = opener.open(req)#继续访问登陆后的页面get_url = 'http://www.abc.com/user/' get_request = urllib.request.Request(get_url, headers=header)get_response = opener.open(get_request)#打印获得的页面信息print(get_response.read().decode("utf-8"))#用bs4可以获得你需要的标签内容soup = BeautifulSoup(get_response.read(),"html.parser")jie = soup.find_all('span')#这里利用正则表达式过滤掉html语言dr = re.compile(r'[^]+',re.S)#这里jie[2]表示取符合条件的第三个标签dd = dr.sub('',str(jie[2]))print(dd) 以上这篇Python3 Post登录并且保存cookie登录其他页面的方法就是小编分享给大家的全部内容了,希望能……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明