【接口自动化】selenium库也有大用场(获取cookie)

相信有些童鞋在做接口、或者说接口自动化测试的过程中会遇到这样的场景:测试的接口,必须是需要登录后才能发起请求成功的。
那么怎么解决呢? 本着团队协作的精神,我们就去让开发同学开个后门,给你个“万能”值,那么你带着这个“万能”值在请求里,就可以畅通无阻了。
但是也不是开发都愿意干这样的事儿,而且很多测试童鞋脸皮也薄(O(∩_∩)O哈哈~),脸皮薄不提倡啊。那么就自己的事儿自己来吧。
既然是需要登录才可以请求,那我们就登录呗。咋登录呢?
selenium库用起来,然后用selenium获取浏览器cookie。下面demo一段登录操作,来登录被测试的系统。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://xxx.xx.com/xxx/login") #打开登录地址
driver.find_element_by_id("username").send_keys("xxx") #输入用户名
driver.find_element_by_id("password").send_keys("xxxx") #输入密码
driver.find_element_by_xpath("//button[.= '登录']").click() #点击登录
cookie = driver.get_cookies() #这里就是获取cookie
print(cookie)
让我们来康康到底拿到cookie了木有?
[
{
'domain': 'xxxx.xx.xxxx.com',
'httpOnly': True,
'name': 'SESSION',
'path': '/xxx/',
'secure': False,
'value': 'YjRjYzY1ODMtNjA1ZS00OWZmLWFmODQtZjhmY2ZjMmIxNzlj'
}
]
看下浏览器F12,找到cookie,比对一下

OK,就是这个值了,那么就可以带着这个值开开心心的测试接口啦。
接口自动化可以采用pytest单元测试框架+requests库,简单粗暴,sei用sei资道。
翠花,上demo
import requests
import pytest
HEADER = {
'Cookie': "SESSION=YjRjYzY1ODMtNjA1ZS00OWZmLWFmODQtZjhmY2ZjMmIxNzlj"
}
def test_01():
r = requests.get("http://xxxx/finance/detail" ,headers=HEADER)
result = r.json()
print(result)
if __name__ == '__main__':
pytest.main(['-s', 'demo1.py'])
看下打印出的请求结果:

当然了,接口自动化测试别忘记加断言哦,demo里就不写了。
总之就是活学活用。
【接口自动化】selenium库也有大用场(获取cookie)的更多相关文章
- 使用Selenium+ChromeDriver登录微博并且获取cookie
using OpenQA.Selenium;using OpenQA.Selenium.Chrome; public class GetSinaCookie { private static stri ...
- 接口自动化--requests库封装
前言 不管是自动化大佬还是自动化小白,都知道我们用python写接口自动化测试肯定是要用requests库来封装请求类的,下面就简单介绍下requests这个库 安装 一般都是直接采用pip命令安装: ...
- 【python接口自动化-requests库】【三】优化重构requests方法
一.重构post请求方法 上一张讲了如何使用requests库发送post请求,但是有时候,我们写脚本,不可能这么简单,代码完全不可复用,重复工作,那我们是不是可以想象,把我们的get,post请求, ...
- 【python接口自动化-requests库】【二】requests库简单使用(入门)
一.post请求 前面讲了,我们get请求的时候,引入requests的包,然后直接使用get方法,那么post是不是一样的? 1.首先我们先引入requests import requests 2. ...
- 【python接口自动化-requests库】【一】requests库安装
1.概念 requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满 ...
- 接口自动化(二)--操作Excel获取需要数据
这一部分的内容记述一下对Excel表格的操作,本实战中的测试用例是由Excel来管理的,因此操作Excel是重要的一部分. 再次贴出这张图,所有的测试用例都在这个sheet内,请求数据真实存放在jso ...
- 接口自动化request库入门
requests库7个主要方法 r= requsts.get(),主要属性: r.raise_for_status()方法内部判断r.status_code是否等于200不需要增加额外的if语句,该语 ...
- Jmeter_接口串联自动化测试_登录后充值获取cookie
1.登陆->充值->运行会报错 2,那如何解决这个问题呢,添加HTTP COokie管理器 另外一种方法,登录->提取正则表达式,充值->添加HTTP cookie管理器
- 8、大型项目的接口自动化实践记录----DB分别获取预期结果、实际结果
上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下D ...
随机推荐
- 使用Azure人脸API对图片进行人脸识别
人脸识别是人工智能机器学习比较成熟的一个领域.人脸识别已经应用到了很多生产场景.比如生物认证,人脸考勤,人流监控等场景.对于很多中小功能由于技术门槛问题很难自己实现人脸识别的算法.Azure人脸API ...
- python3.3while循环
#while循环与for循环不同的是,while循环的停止条件是自己设置! i=0#初始值while i<=10:#循环条件 print(i)#while循环嵌套if条件 if i==5: pr ...
- 永久修改Ubuntu的主机名称
Ubuntu主机名称查看方法,使用hostname命令: [ubuntu@ubuntu ~]$hostname ubuntu 永久修改方法: 修改配置文件: sudo vi /etc/hostname ...
- 【av68676164(p31-p32)】Windows和Linux同步机制
4.6.1 Windows同步机制 临界区(CRITICAL_SECTION) 在进程内使用,保证仅一个线程可以申请到该对象 临界区内是临界资源的访问 相关的API函数 初始化临界区 WINBASEA ...
- Java中的不可变集合,我们换个方式理解!!!
不可变集合例: public static final ImmutableSet<String> COLOR_NAMES = ImmutableSet.of( "red" ...
- Vue视图渲染原理解析,从构建VNode到生成真实节点树
前言 在 Vue 核心中除了响应式原理外,视图渲染也是重中之重.我们都知道每次更新数据,都会走视图渲染的逻辑,而这当中牵扯的逻辑也是十分繁琐. 本文主要解析的是初始化视图渲染流程,你将会了解到从挂载组 ...
- 你知道MySQL是如何处理千万级数据的吗?
mysql 分表思路 一张一亿的订单表,可以分成五张表,这样每张表就只有两千万数据,分担了原来一张表的压力,分表需要根据某个条件进行分,这里可以根据地区来分表,需要一个中间件来控制到底是去哪张表去找到 ...
- C#LeetCode刷题-排序
排序篇 # 题名 刷题 通过率 难度 56 合并区间 31.2% 中等 57 插入区间 30.4% 困难 75 颜色分类 48.6% 中等 147 对链表进行插入排序 50.7% 中等 ...
- JVM垃圾回收(GC)
JVM垃圾回收(GC) 1. 判断对象是否可以被回收 引用计数法:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收.此方法简单,但无法解决对象相互循环引用的问 ...
- LeetCode198 House Robber(打家劫舍)
题目 You are a professional robber planning to rob houses along a street. Each house has a certain amo ...