unittest(7)-作业- 全局变量传递cookie
全局变量存储cookie
测试类中有多个测试函数
# 1.http_requset.py
import requests
class HttpRequest:
def http_request(self, url, method, data=None, cookie=None):
try:
if method.upper() == "GET":
res = requests.get(url, data, cookies=cookie)
elif method.upper() == "POST":
res = requests.post(url, data, cookies=cookie)
else:
print("请输入正确的参数")
except Exception as e:
print("请求报错了:{}".format(e))
raise e
return res
if __name__ == '__main__':
# 登录
login_url = "http://v.rainbowred.com/login"
login_data = {"username": "15546355872",
"password": "123456",
"rememberCheck": "1",
"loginStatus": "1",
"rememberStatus": "1",
"autoLogin": "0",
"language": "zh"}
login_res = HttpRequest().http_request(login_url, "post", login_data)
print(login_res.json())
# 选择公司
c_url = "http://v.rainbowred.com/chc"
c_data = {"companyId": "21"}
c_res = HttpRequest().http_request(c_url, "post", c_data, cookie=login_res.cookies)
print(c_res.json())
# 2.test_login.py
import unittest
from API_AUTO.tools.http_request import HttpRequest
COOKIE = None # 全局变量
"""
1.登录接口:4个用例
正确登录、不输入账号、不输入密码、错误账号、错误密码
2.充值接口:
正常充值、不输入账号、不输入金额、充值错误的金额负数
"""
class TestLogin(unittest.TestCase):
def setUp(self):
print("开始执行用例")
# 登录URL和考勤URL,这个地方的URL和data是写死的值,所以不用在setUp中传参
self.loin_url = "https://www.ketangpai.com/UserApi/login"
self.kq_url = "https://www.ketangpai.com/SummaryApi/attence?courseid=MDAwMDAwMDAwOcqZWH37Np"
def tearDown(self):
print("用例执行完毕")
def test_success(self):
global COOKIE
data = {"email": "1255811581@qq.com", "password": "huahua90!@", "remember": 0}
res = HttpRequest().http_request(self.loin_url, "post", data)
r = res.json()["info"]
print("1正常登录结果是", r)
if res.cookies: # 如果res.cookies有值,就更新全局变量COOKIE的值
COOKIE = res.cookies
try:
self.assertEqual(r, "success")
except AssertionError as e:
print("test_success's error is {}".format(e))
raise e # 处理了异常后再抛出去
def test_account(self):
data2 = {"email": "", "password": "huahua90!@", "remember": 0}
res = HttpRequest().http_request(self.loin_url, "post", data2)
r = res.json()["info"]
print("2空用户名登录结果是", r)
try:
self.assertEqual(r, "用户名不能为空")
except AssertionError as e:
print("test_account's error is {}".format(e))
raise e
def test_pwd(self):
data3 = {"email": "1255811581@qq.com", "password": "", "remember": 0}
res = HttpRequest().http_request(self.loin_url, "post", data3)
r = res.json()["info"]
print("3空密码登录结果是", r)
try:
self.assertEqual(r, "密码不能为空")
except AssertionError as e:
print("test_pwd's error is {}".format(e))
raise e
def test_waccount(self):
data4 = {"email": "12558115810@qq.com", "password": "huahua90!@", "remember": 0}
res = HttpRequest().http_request(self.loin_url, "post", data4)
r = res.json()["info"]
print("4错误用户名登录结果是", r)
try:
self.assertEqual(r, "用户不存在")
except AssertionError as e:
print("test_waccount's error is {}".format(e))
raise e
def test_wpwd(self):
data5 = {"email": "1255811581@qq.com", "password": "huahua90!@111", "remember": 0}
res = HttpRequest().http_request(self.loin_url, "post", data5)
r = res.json()["info"]
print("5错误密码登录结果是", r)
try:
self.assertEqual(r, "密码错误,你不能再尝试了", "这个用例会失败")
except AssertionError as e:
print("test_wpwd's error is {}".format(e))
raise e
def test_kq(self):
global COOKIE
data = {}
res = HttpRequest().http_request(self.kq_url, "get", data, COOKIE)
# r = res.json()
print("6考勤记录是", res)
if __name__ == "__main__":
unittest.main()
unittest(7)-作业- 全局变量传递cookie的更多相关文章
- chap4-关联接口测试-通过全局变量传递cookie
# 1 http_request.py import requests class HttpRequest: def http_request(self, url, method, data=None ...
- Jmeter中传递cookie值
场景:用户登陆后会本地会保存cookie,cookie是用来跟服务端验证此用户已经登陆过的重要信息,但是如何获取并在其他请求时将此cookie传递给服务器呢? 在线程组下面之直接添加HTTP Cook ...
- Jmeter跨线程组传递cookie,以禅道系统为例;BeanShell的存取数据的使用
先看下脚本结构: 思路:将登陆请求放在setUp Thread Group中:把登陆后的cookie通过正则提取出来,然后存为全局变量,传递到下一个线程组中: 第一步:添加setUp Thread G ...
- 使用curl传递cookie错误的问题
工作中发现一个问题, 通过curl调用接口传递cookie操作用户的数据, 接口的程序解析不了cookie中的数据. 经过排查发现curl发送的cookie数据为 TZ+Gn+rEk+6G4d 而接口 ...
- Android 使用全局变量传递数据
使用全局变量传递数据,所谓的全局变量类似于jee开发中的application变量.申明后,全局调用.只有当内存被清理后,才被销毁.否则一直可以调用. 还是使用点击一个button,传递一个数据到另一 ...
- node下的跨域传递cookie
研究背景: 最近有一位朋友找工作,需要面试,涉及到面试就涉及面试题,于是我想起来鄙人之前面试被问到的一个跨域传递cookie的问题.搜索了相关资料,但自己不敲一下肯定是不足以让人信服的. 我用node ...
- activity之间通过全局变量传递数据
activity之间通过全局变量传递数据 一.简介 Application域中的onCreate方法是Android程序的入口,Android程序运行的时候就自动加载Application的对象,感觉 ...
- 如何从桌面程序向浏览器传递cookie或自定义header
类似问题 从c#程序启动ie并传递cookie 打开默认浏览器并传递cookie 打开一个web浏览器使用c#应用程序并添加请求头 猜想 从wpf程序打开默认浏览器并定位到一个url ,并且向这个ur ...
- requests接口自动化9-共享session和传递cookie
前言: session:用requests.session()创建会话,可以将会话信息传递给其他接口 cookie:用RequestsCookieJar或者cookie字典传递cookie信息 fil ...
随机推荐
- JunOS SRX firewal Web authentication(转)
转载自:https://srxasa.wordpress.com/2011/12/11/junos-srx-firewal-web-authentication/ JunOS SRX firewal ...
- 03 Mybatis:01.Mybatis课程介绍及环境搭建&&02.Mybatis入门案例
mybatis框架共四天第一天:mybatis入门 mybatis的概述 mybatis的环境搭建 mybatis入门案例 -------------------------------------- ...
- 12 Spring Data JPA:springDataJpa的运行原理以及基本操作(上)
spring data jpaday1:orm思想和hibernate以及jpa的概述和jpa的基本操作 day2:springdatajpa的运行原理 day2:springdatajpa的基本操作 ...
- PAT Advanced 1032 Sharing(25) [链表]
题目 To store English words, one method is to use linked lists and store a word letter by letter. To s ...
- java常见的 http 请求库比较
java常见的http请求库有httpclient,RestTemplate,OKhttp,更高层次封装的 feign.retrofit 1.HttpClient HttpClient:代码复杂,还得 ...
- shell的集合运算
用cat,sort,uniq命令实现文件行的交集 .并集.补集 交集 $F_1 \cap F_2 $ cat f1 f2 | sort | uniq -d 并集 $F_1 \cup F_2 $ cat ...
- 对于 C语言的扩展和JAVA的重载理解
哎,又被学长看成笨蛋了 ,先前学习java,自己真是什么都要忘了,弄得自己连java最重要的概念--重载,都不知道是啥,还厚着脸皮和学长说 是函数名字一样 ,但是就是函数里面的参数和参数类型不一 ...
- 14 微服务电商【黑马乐优商城】:day04-项目搭建(一)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...
- 如何在linux中运行sql文件
1.在linux中进入sql命令行 mysql -u root -p 输入密码 2.假设home下面有a.sql文件 先得use databasename,要不会报错 “No Database S ...
- docker容器中安装中文字体
在项目中用到pdf导出功能,需要安装中文字体,项目使用docker部署,为了方便决定在将字体安装在镜像中. 1.在dockerfile文件中添加字体copy语句(本次用是的宋体,字体源文件放在dock ...