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 ...
随机推荐
- PAT Advanced 1048 Find Coins (25) [Hash散列]
题目 Eva loves to collect coins from all over the universe, including some other planets like Mars. On ...
- springCloud eureka服务治理集群增加安全认证
做为SpringCloud Netflix服务套件中的一部分,springCloud eureka基于Netflix Eureka做了二次封装,默认提供WEB管理页面及服务治理. 为了确保在生产环境中 ...
- 剑指offer【10】- 变态跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 关于本题,前提是n个台阶会有一次n阶的跳法.分析如下: f(1) = 1 f(2) ...
- Mac 终端实现快速定位命令 自动补全目录
基于macOS oh-my-zsh 切换终端主题 incr.zsh 实现快速定位命令 自动补全目录 效果预览 步骤 1.安装 oh-my-zsh sh -c "$(curl -fsSL ht ...
- 吴裕雄--天生自然python TensorFlow图片数据处理:No module named 'tensorflow.examples.tutorials'解决办法
import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_dat ...
- centos6.8 yum安装mysql 5.6
一.检查系统是否安装其他版本的MYSQL数据 #yum list installed | grep mysql #yum -y remove mysql-libs.x86_64 二.安装及配置 # w ...
- vue项目打包,生成dist文件夹,如何修改文件夹的名字
vue项目打包之后的dist文件目录是如下 如果想要修改dist或则static文件名称,需要打开config / index.js build: { // Template for index.ht ...
- oracle_(第二课)监听器配置
一. 1.首先我们得安装好oracle数据库(上一课有讲) 再来看看我们没有监听器之前的文件 文件路径:%ORACLE_HOME%/NETWORK/ADMIN 2.关闭所有防火墙,win10的要特别注 ...
- Linear Equations
4.1 Linear Equations with One Independent Variable
- signal之——异步回收机制2
前言:上一篇的处理方法可以解决所有回收问题,但是如果我们不考虑子进程的返回状态,那么可以使内核来进行对子进程的回收 代码如下: //如果无需关心进程结束状态 可以设置子进程结束时不产生僵尸进程有内核值 ...