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 ...
随机推荐
- 【转载】Github上优秀的.NET Core项目
Github上优秀的.NET Core项目 Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志. ...
- 寒假day07
今天没写毕设,看了一些公司招聘的信息,刷了一点相关面试题 1.在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...
- ajax使用json数组------前端往后台发送json数组及后台往前端发送json数组
1.引子 Json是跨语言数据交流的中间语言,它以键/值对的方式表示数据,这种简单明了的数据类型能被大部分编程语言理解.它也因此是前后端数据交流的主要方式和基础. 2.前端往后台传输json数据 第一 ...
- 0x10 - PostgreSQL 安装之 CentOS7 + Patroni
PostgreSQL + CentOS7 + Patroni 背景 PostgreSQL 的高可用环境 环境 CentOS 7 pg01 (192.168.1.120) pg02 (192.168.1 ...
- mpu6050的驱动的加载和测试步骤
mpu6050的使用方法: 1.接线方式: VCC,GND,SCL,SDA,正常接法,VCC接3.3v,主要说一下AD0引脚,用来表示地址 接低电平设备地址为0x68,接高电平表示0x69 2.设备接 ...
- Softether使用本地网桥
https://maytalkhao.com/archives/826 以下步骤都是按照上面这篇文章来的,具体细节如下 一.使用Softether VPN Server Manager软件添加本地网 ...
- 对象数组和for循环遍历输出学生的信息
public class Student { private int no; private String name; private int age; public Student(int no, ...
- servletHomeWork
2. http全称是什么? 超文本传输协议(HTTP, HyperText Transfer Protocol)是互联网上应用为最广泛的一种网络协议. 3.http协议是无状态的协议是什么意思?请说明 ...
- 1)关于配置centos的网络问题
网址: http://jingyan.baidu.com/article/f3e34a12d886d2f5eb653515.html
- 透过微软研究院在“数据中心网络”的重大进展看SIGCOMM 2013
2013" title="透过微软研究院在"数据中心网络"的重大进展看SIGCOMM 2013"> 编者按:于8月12日至16日在香港举行的SI ...