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 ...
随机推荐
- 吴裕雄--天生自然 JAVA开发学习:StringBuffer、数组
public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer(& ...
- python学习笔记_集合的定义和常用方法
1.认识集合 定义: s={1,2,3,4,5} s=set("hello") s=set(["steven","job","da ...
- Chrome使用频率最高的快捷键
标签 ctrl+T 打开新标签 ——— ctrl+W 关闭标签 ctrl+shift+T 打开上衣个被关闭的标签 ctrl+tab 标签向右切换 —— ctrl+shift+tab 标签向左切换 c ...
- RE数组开多大?
#include<iostream> using namespace std; ][]; int main() { int n, m; ; i <= ; i++) { a[][i] ...
- Java基础篇 - 强引用、弱引用、软引用和虚引用
Java基础篇 - 强引用.弱引用.软引用和虚引用 原创零壹技术栈 最后发布于2018-09-09 08:58:21 阅读数 4936 收藏展开前言Java执行GC判断对象是否存活有两种方式其中一种是 ...
- typescript-学习使用ts-3
函数 函数参数 参数及返回值类型 function add(x: number, y: number): number { return x + y } 可选参数 function add(x: nu ...
- stopping service [tomcat],服务未启动
1. 在主类中添加日志打印,查看错误: 2. 我的错误是因为两个controller含有相同的路径
- ubuntu16.04设置apt 阿里源
sudo gedit /etc/apt/sources.listdeb http://mirrors.aliyun.com/ubuntu/ trusty main restricted univers ...
- MonkeyScript常用命令及Uiautomatorview问题解决
一.MonkeyScript执行脚本的命令 adb shell monkey -f <scriptfile><event-count> 1.Dispatch Trackball ...
- inotify+rsync实时同步
主服务器上安装inotify和rsync,备用服务器上安装rsync 主服务器上修改/etc/rsyncd.conf配置文件 三. 创建密码文件,防火墙设置,客户端和服务器端都要做如下操作 echo ...