相信有些童鞋在做接口、或者说接口自动化测试的过程中会遇到这样的场景:测试的接口,必须是需要登录后才能发起请求成功的。

那么怎么解决呢? 本着团队协作的精神,我们就去让开发同学开个后门,给你个“万能”值,那么你带着这个“万能”值在请求里,就可以畅通无阻了。

但是也不是开发都愿意干这样的事儿,而且很多测试童鞋脸皮也薄(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)的更多相关文章

  1. 使用Selenium+ChromeDriver登录微博并且获取cookie

    using OpenQA.Selenium;using OpenQA.Selenium.Chrome; public class GetSinaCookie { private static stri ...

  2. 接口自动化--requests库封装

    前言 不管是自动化大佬还是自动化小白,都知道我们用python写接口自动化测试肯定是要用requests库来封装请求类的,下面就简单介绍下requests这个库 安装 一般都是直接采用pip命令安装: ...

  3. 【python接口自动化-requests库】【三】优化重构requests方法

    一.重构post请求方法 上一张讲了如何使用requests库发送post请求,但是有时候,我们写脚本,不可能这么简单,代码完全不可复用,重复工作,那我们是不是可以想象,把我们的get,post请求, ...

  4. 【python接口自动化-requests库】【二】requests库简单使用(入门)

    一.post请求 前面讲了,我们get请求的时候,引入requests的包,然后直接使用get方法,那么post是不是一样的? 1.首先我们先引入requests import requests 2. ...

  5. 【python接口自动化-requests库】【一】requests库安装

    1.概念 requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满 ...

  6. 接口自动化(二)--操作Excel获取需要数据

    这一部分的内容记述一下对Excel表格的操作,本实战中的测试用例是由Excel来管理的,因此操作Excel是重要的一部分. 再次贴出这张图,所有的测试用例都在这个sheet内,请求数据真实存放在jso ...

  7. 接口自动化request库入门

    requests库7个主要方法 r= requsts.get(),主要属性: r.raise_for_status()方法内部判断r.status_code是否等于200不需要增加额外的if语句,该语 ...

  8. Jmeter_接口串联自动化测试_登录后充值获取cookie

    1.登陆->充值->运行会报错 2,那如何解决这个问题呢,添加HTTP COokie管理器 另外一种方法,登录->提取正则表达式,充值->添加HTTP cookie管理器

  9. 8、大型项目的接口自动化实践记录----DB分别获取预期结果、实际结果

    上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下D ...

随机推荐

  1. sqlzoo刷题 SELECT from Nobel Tutorial

    SELECT from Nobel Tutorial 1.Change the query shown so that it displays Nobel prizes for 1950. SELEC ...

  2. Android Json转换类对象,并使用

    长话短说,先上代码(今天的代码是有史以来最短的)(今天的课也是有史以来最精简...) 然后就是介绍Song是啥,上面的网站应该知道,是网易云的,不过为啥会变成这样,因为这是网易云的API网站 反正就是 ...

  3. “随手记”开发记录day09

    今天完成了关于我们页面和更新查找页面 效果

  4. Bytom Dapp 开发笔记(一):架构设计

    简介 研究比原链已经一年了,用比原链做了几个dapp,而且最近还做了一个基于他们插件钱包的dapp,总结了一些遇到的坑,还有一些技术细节,接下来我会分成三章,从dapp设计架构上,到深入到源码分析去帮 ...

  5. 浅析Facebook LibraBFT与比原链Bystack BBFT共识

    如果说什么是区块链的灵魂,那一定是共识机制. 它是区块链的根基.无论公链或是联盟链,共识机制都从基础上限制了区块链的交易处理能力和扩展性. 2019年6月18日,Facebook 发布了自己 Libr ...

  6. html定时跳转页面

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. C#LeetCode刷题-几何

    几何篇 # 题名 刷题 通过率 难度 587 安装栅栏   21.5% 困难 892 三维形体的表面积 C#LeetCode刷题之#892-三维形体的表面积(Surface Area of 3D Sh ...

  8. C#LeetCode刷题之#633-平方数之和( Sum of Square Numbers)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3885 访问. 给定一个非负整数 c ,你要判断是否存在两个整数 ...

  9. 用WindowsAPI实现文件复制功能

    用WindowsAPI实现文件复制功能 1. c代码 注释也在里面 文件名为 copyfile.c 运行出来的exe为 copyfile.exe #include <windows.h> ...

  10. Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

    花下猫语:在上一篇<Python 为什么能支持任意的真值判断? >文章中,我们分析了 Python 在真值判断时的底层实现,可以看出 Python 在对待布尔值时,采用了比较宽泛的态度.官 ...