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

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

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

但是也不是开发都愿意干这样的事儿,而且很多测试童鞋脸皮也薄(O(∩_∩)O哈哈~),脸皮薄不提倡啊。那么就自己的事儿自己来吧。

既然是需要登录才可以请求,那我们就登录呗。咋登录呢?

selenium库用起来,然后用selenium获取浏览器cookie。下面demo一段登录操作,来登录被测试的系统。

from selenium import webdriverdriver = 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 pytestHEADER = {'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里就不写了。总之就是活学活用。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/184421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Condition 源码解析

Condition 源码解析 文章目录 Condition 源码解析一、Condition二、Condition 源码解读2.1. lock.newCondition() 获取 Condition 对象2.2. condition.await() 阻塞过程2.3. condition.signal() 唤醒过程2.4. condition.await() 被唤醒后 三、总结 一、Condition 在并发情况下…

【网络奇遇之旅】:那年我与计算机网络的初相遇

🎥 屿小夏 : 个人主页 🔥个人专栏 : 计算机网络 🌄 莫道桑榆晚,为霞尚满天! 文章目录 一. 前言二. 计算机网络的定义三. 计算机网络的功能3.1 资源共享3.2 通信功能3.3 其他功能 四. 计算机网络…

基于APM(PIX)飞控和missionplanner制作遥控无人车-从零搭建自主pix无人车无人履带车坦克-2(以乐迪crossflight飞控为例)

这里重点以乐迪crossflight飞控为例进行组装调试。 1.刷写固件 安装最新版的乐迪地面站,在官网可以下载。由于产品里面不好找到对应的飞控,可以在首页滑动图片里进入。 1.连接飞控和电脑,查看com口,安装驱动。 2.刷写固件。如果…

Web实现悬浮球-可点击拖拽禁止区域

这次要实现的是这种效果,能够在页面上推拽和点击的,拖拽的话,就跟随鼠标移动,点击的话,就触发新的行为,当然也有指定某些区域不能拖拽,接下来就一起来看看有什么难点吧~ 需要监听的鼠标事件 既…

理解DALL-E 2

1.简介 DALL-E 2的效果想必大家都已经很清楚了,效果是非常惊人的,该篇文章就是讲一下DALL-E 2的原理是什么。 2.方法 DALL-E 2的原理不难理解,前提是你知道CLIP。简单来说,CLIP是一个由文本和图片多模态训练的一个zero-shot模型…

IDEA专栏—重装IDEA的配置

文章目录 1、maven路径2、默认文件路径3、插件4、导包顺序5、快捷键6、调整配置插件 1、maven路径 2、默认文件路径 3、插件 4、导包顺序 import static all other imports <blank line> import java.* import javax.* <blank line> import all other imports <…

python实现获取aws route53域名信息

最近由于工作原因接触到aws的服务&#xff0c;我需要实时获取所有的域名信息&#xff0c;用于对其进行扫描&#xff0c;因此写了一个自动化爬取脚本 给需要的人分享。 1.基础准备 代码环境&#xff1a;python3 第三方库&#xff1a;boto3 &#xff08;安装方法pip install…

虚幻学习笔记7—蓝图接口

一、前言 蓝图接口就是可以在蓝图中实现的接口&#xff0c;有它方便的地方&#xff0c;可以很方便的调用到实现了接口的函数。 二、实现 2.1、创建一个蓝图接口 1&#xff09;可以添加多个函数。 2&#xff09;函数在蓝图接口中只能规定输入和输出参数。 只有输入参数的可以…

SSM校园学习助手系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 校园学习助手系统是一套完善的信息系统&#xff0c;结合springMVC框架完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模…

C语言--每日选择题--Day30

第一题 1. i 5&#xff0c;j 7&#xff0c;i | j 等于多少&#xff1f; A&#xff1a;1 B&#xff1a;3 C&#xff1a;5 D&#xff1a;7 答案及解析 D &#xff5c;这个是按位或运算符&#xff0c;两个数的二进制位&#xff0c;有1为1&#xff0c;同0为0&#xff1b; i的二进…

ubuntu下训练自己的yolov5数据集

参考文档 yolov5-github yolov5-github-训练文档 csdn训练博客 一、配置环境 1.1 安装依赖包 前往清华源官方地址 选择适合自己的版本替换自己的源 # 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak # 修改源文件 # 更新 sudo apt update &&a…

虚拟机VMware下CentOS7.9对磁盘扩容

首先是在VMware虚拟下对机器进行关机&#xff0c;然后扩容后启动机器&#xff08;操作简单&#xff0c;忽略&#xff0c;网上很多&#xff09; 开始增加磁盘空间 查看磁盘空间 发现此时磁盘空间仍然没变化 df -lh 查看当前磁盘分区信息 fdisk -l 对新加磁盘空间进行分区操…

UG\NX二次开发 创建对象属性UF_ATTR_assign

文章作者:里海 来源网站:里海NX二次开发3000例专栏 感谢粉丝订阅 感谢 weixin_43890371 订阅本专栏,非常感谢。 简介 创建对象属性UF_ATTR_assign 这个函数在后续NX版本中被UF_ATTR_set_user_attribute替代,新的函数使用例子请参阅这篇文章《UG\NX二次开发 创建对象属性UF_…

UG\NX二次开发 获取对象上属性的锁定状态UF_ATTR_ask_locked

文章作者&#xff1a;里海 来源网站&#xff1a;里海NX二次开发3000例专栏 感谢粉丝订阅 感谢 2301_80435318 开发 订阅本专栏&#xff0c;非常感谢。 简介 设置对象上属性的锁定状态UF_ATTR_set_locked&#xff0c;需要先在“用户默认设置”中勾选“通过NX Open锁定属性”&…

shiro-cas处理请求的流程

1.shiro框架处理请求&#xff0c;首先会先经过AccessControlFilter的onPreHandle方法。 2.onPreHandle中 ①isAccessAllowed&#xff1a;判断用户是否登录 在登录的情况下会走此方法&#xff0c;此方法返回true直接访问控制器&#xff1b; ②onAccessDenied&#xff1a;是否是拒…

如何保证缓存和数据库的双写一致性?

一、什么是数据库和缓存双写一致性&#xff1f; 在分布式系统中&#xff0c;数据库和缓存会搭配一起使用&#xff0c;以此来保证程序的整体查询性能。也就说&#xff0c;分布式系统为了缓解数据库查询的压力&#xff0c;会将查出来的数据保存在缓存中&#xff0c;下次再查询时…

什么是UTM投影坐标系?​

UTM&#xff08;Universal Transverse Mercator Grid System&#xff0c;通用横墨卡托格网系统&#xff09;坐标是一种平面直角坐标。 这种坐标格网系统及其所依据的投影已经广泛用于地形图&#xff0c;作为卫星影像和自然资源数据库的参考格网以及要求精确定位的其他应用。 …

android framework分屏“官方”黑屏bug问题发现,你会分析吗?-千里马实战作业挑战

背景 hi&#xff0c;粉丝朋友们&#xff1a; 大家都知道马哥课程以实战为特色&#xff0c;这里的实战就是最贴近公司里面开发的实战项目。这些实战主要来自哪呢&#xff1f; 1、以前在公司的工作积累&#xff0c;自己在公司做过什么&#xff0c;这部分比较好毕竟都是搞过的 2…

webshell之API免杀

ScriptEngineManager命令执行免杀 ScriptEngineManager执行js代码 利用ScriptEngineManager可以执行js命令&#xff0c;但是由于一般情况下&#xff0c;即便能运行js代码也不一定能执行系统命令。因为一般情况下js执行系统命令主要是依靠两种方式&#xff0c;IE的ActiveX插件…

用纯 CSS 实现网格背景

是不是在日常开发中经常遇到实现网格的需求&#xff0c;网格通常对网页中展示的元素能起到很好的定位和对齐作用。 这里介绍如何只通过 CSS 来实现这个需求&#xff1f; 使用背景图 这里我们的背景图使用 SVG 来创建&#xff0c;首先&#xff0c;创建绘出一个正方形&#xff0c…