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

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

但是也不是开发都愿意干这样的事儿,而且很多测试童鞋脸皮也薄(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. JDBC报错:Cannot find class: com.mysql.jdbc.Driver

    连接数据库的jar出现异常(通常报错:Cannot find class:com.mysql.jdbc.Drive), 问题:Connector的jar已经导入,还是出现 Cause: java.sq ...

  2. JSON 和 POJO 互转,List<T> 和 JSON 互转

    JSON 和 POJO import com.alibaba.fastjson.JSONObject; import org.slf4j.Logger; import org.slf4j.Logger ...

  3. 100% 展示 MySQL 语句执行的神器-Optimizer Trace

    在上一篇文章<用Explain 命令分析 MySQL 的 SQL 执行>中,我们讲解了 Explain 命令的详细使用.但是它只能展示 SQL 语句的执行计划,无法展示为什么一些其他的执行 ...

  4. 经典的IPC问题

    Inter-Process Communication的缩写,含义是进程间通信,是指两个进程间交换数据的过程. 哲学家进餐问题 概述 哲学家进餐/思考 进餐需要两把叉子 每次拿一把叉子 如何预防死锁 ...

  5. .NET 跨平台框架Avalonia UI: 填坑指北(一):熟悉UI操作

    Avalonia 是一个跨平台的 .NET UI 框架,支持 Windows.Linux.Mac OSX... (以及Android  IOS soon..) 本篇主要介绍Avalonia开发过程和L ...

  6. 利用遗传算法求解TSP问题

    转载地址 https://blog.csdn.net/greedystar/article/details/80343841 目录 一.问题描述 二.算法描述 三.求解说明 四.参考资料 五.源代码 ...

  7. Android开发学习进程0.18 SharePreference的使用 AIDL

    SharePreference SharePreference是一种持久化存储手段,使用场景很多,如第一次打开时加载的用户协议等.适合小数据单进程的应用.将数据以键值对的形式存储在XML中. 使用方式 ...

  8. 小程序3:ATM小程序

    ATM实现流程 1.欢迎界面和菜单 显示部分的代码代码放到view.py中 import time class View(): def login(): """ 管理员登 ...

  9. 对‘example_app_new’未定义的引用

    将头文件添加到add-executable()中 cmake_minimum_required(VERSION 3.12) project(SGTK3application2 C) set(CMAKE ...

  10. 手机APP无法抓包(无法连接服务器)

    一. 把证书放到系统信任区 前提:手机已root 详细步骤 计算证书名 openssl x509 -subject_hash_old -in charles-ssl-proxying-certific ...