全局变量存储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": "[email protected]", "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": "[email protected]", "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": "[email protected]", "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": "[email protected]", "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()