class TestApprove(unittest.TestCase): def setUp(self) -> None: self.session = requests.session() self.login = ApiRegLogin(self.session) self.approve = Approve(self.session) def tearDown(self) -> None: logger.info("正在关闭session对象") # 关闭session对象 self.session.close() def test01_approve(self): self.login.login("13600001111", "q123456") r = self.approve.api_approve("张三", "362322199512036344") try: common_assert(self, r, status_code=200) except Exception as e: logger.error(e) raise def test02_approve_info(self): self.login.login("13600001111", "q123456") r = self.approve.api_approve_info() try: common_assert(self, r, status=None) except Exception as e: logger.error(e) raise
class TestTrust(unittest.TestCase): def setUp(self) -> None: # 获取session对象 self.session = requests.session() # 获取ApiRegLogin对象 self.login = ApiRegLogin(self.session) self.trust = ApiTrust(self.session) # 登录 self.login.login("13600001111", "q123456") def tearDown(self) -> None: logger.info("正在关闭session对象") # 关闭session对象 self.session.close() def test01_trust(self): r = self.trust.api_trust() logger.info("开户结果:{}".format(r.text)) try: common_assert(self, r) except Exception as e: logger.error(e) raise # 调用第三方开户 result = parser_html(r) logger.info("解析开户数据结果为:{}".format(result)) r = self.session.post(url=result[0], data=result[1]) print("三方开户结果为:", r.text) logger.info("三方开户结果为:{}".format(r.text)) self.assertIn("OK", r.text) def test02_recharge(self): r = self.trust.api_recharge_code() logger.info("获取充值验证码结果:{}".format(r.status_code)) r = self.trust.api_recharge(100, 8888) print("充值结果", r.text) # 调用第三方充值 result = parser_html(r) logger.info("解析充值数据结果为:{}".format(result)) r = self.session.post(url=result[0], data=result[1]) print("三方充值结果为:", r.text) logger.info("三方充值结果为:{}".format(r.text)) self.assertIn("OK", r.text)
class TestRegLogin(unittest.TestCase): # 初始化 def setUp(self) -> None: # 获取session对象 self.session = requests.session() logger.info("正在获取session对象:{}".format(self.session)) # 获取ApiRegLogin对象 self.api = ApiRegLogin(self.session) logger.info("正在获取ApiRegLogin对象:{}".format(self.api)) # 结束 def tearDown(self) -> None: logger.info("正在关闭session对象") # 关闭session对象 self.session.close() # 1.注册图片验证码 测试方法 def test01_img_code(self): # 调用图片验证码接口 r = self.api.reg_img_code(random.random()) # 断言 响应200 print("响应状态码:", r.status_code) try: self.assertEqual(200, r.status_code) except Exception as e: logger.error(e) raise # 2. 注册 短信验证码 def test02_sms_code(self): # 1. 获取图片验证码 目的: 使用session对象自动记录cookie self.api.reg_img_code(random.random()) # 2. 获取短信验证码 r = self.api.reg_sms_code(phone, verifycode) print("获取短信验证码 结果为: ", r.json()) try: # 调用断言方法 common_assert(self, r, description="发送成功") except Exception as e: logger.error(e) raise # 3. 注册 测试方法 def test03_reg(self): # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone, verifycode) # 3. 调用注册接口 r = self.api.reg(phone, password, verifycode, phone_code, invite_phone) print("响应状态码:", r.json()) try: # 4. 断言注册信息 common_assert(self, r, description="注册成功") except Exception as e: logger.error(e) raise # 4. 登录 测试方法 def test04_login(self): r = self.api.login(phone, password) print("登录结果:", r.json()) try: # 4. 断言登录信息 common_assert(self, r, description="登录成功") except Exception as e: logger.error(e) raise # 5. 是否登录 测试方法 def test05_is_login(self): # 1.调用登录 self.api.login(phone, password) # 2.判断是否登录 r = self.api.islogin() print("登录查询结果:", r.json()) try: common_assert(self, r, description="OK") except Exception as e: logger.error(e) raise """逆向 注册图片验证码""" # 6. 逆向-注册图片验证码--(随机整数) def test06_img_code(self): # 调用图片验证码接口 r = self.api.reg_img_code(random.randint(1, 999999999999)) # 断言 响应200 print("响应状态码:", r.status_code) try: common_assert(self, r, status=None) except Exception as e: logger.error(e) raise # 7. 逆向-注册图片验证码--(随机数为空) def test07_img_code(self): # 调用图片验证码接口 num = "" r = self.api.reg_img_code(num) # 断言 响应404 print("响应状态码:", r.status_code) try: common_assert(self, r, status_code=404, status=None) except Exception as e: logger.error(e) raise # 8. 逆向-注册图片验证码--(随机数为字符串) def test08_img_code(self): # 调用图片验证码接口 num = random.sample("asfdfsgttegfgdgsf", 6) r = self.api.reg_img_code("".join(num)) # 断言 响应404 print("响应状态码:", r.status_code) try: self.assertEqual(400, r.status_code) except Exception as e: logger.error(e) raise """逆向 注册短信验证码""" # 9. 注册 短信验证码 手机号为空 def test09_sms_code_phone_null(self): phone = "" # 1. 获取图片验证码 目的: 使用session对象自动记录cookie self.api.reg_img_code(random.random()) # 2. 获取短信验证码 r = self.api.reg_sms_code(phone, verifycode) print("获取短信验证码 结果为: ", r.json()) try: # 调用断言方法 common_assert(self, r, status=100) except Exception as e: logger.error(e) raise # 9. 注册 短信验证码 验证码为空 def test10_sms_code_code_null(self): verifycode = "" # 1. 获取图片验证码 目的: 使用session对象自动记录cookie self.api.reg_img_code(random.random()) # 2. 获取短信验证码 r = self.api.reg_sms_code(phone, verifycode) print("获取短信验证码 结果为: ", r.json()) try: # 调用断言方法 common_assert(self, r, status=100, description="图片验证码错误") except Exception as e: logger.error(e) raise # 10. 注册 短信验证码 验证码错误 def test11_sms_code_verify_null(self): verifycode = "8889" # 1. 获取图片验证码 目的: 使用session对象自动记录cookie self.api.reg_img_code(random.random()) # 2. 获取短信验证码 r = self.api.reg_sms_code(phone, verifycode) print("获取短信验证码 结果为: ", r.json()) try: # 调用断言方法 common_assert(self, r, status=100, description="图片验证码错误") except Exception as e: logger.error(e) raise # 11. 注册 短信验证码 不请求获取图片验证码 def test12_sms_code_(self): # 2. 获取短信验证码 r = self.api.reg_sms_code(phone, verifycode) logger.info("不请求获取图片验证码 响应数据为:{}".format(r.json())) print("不请求获取图片验证码 结果为: ", r.json()) try: # 调用断言方法 common_assert(self, r, status=100, description="图片验证码错误") except Exception as e: logger.error(e) raise """注册 逆向""" # 3. 注册 测试方法 所有参数 def test13_register_all_params(self): # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone1, verifycode) # 3. 调用注册接口 r = self.api.reg(phone1, password, verifycode, phone_code, invite_phone, dy_server) print(r.json()) try: # 4. 断言注册信息 common_assert(self, r, status=200, description="注册成功") except Exception as e: logger.error(e) raise # 3. 注册 测试方法 图片验证码错误 def test14_reg_img_code_err(self): verifycode = "8899" # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone, verifycode) # 3. 调用注册接口 r = self.api.reg(phone, password, verifycode, phone_code, invite_phone, dy_server) print(r.json()) try: # 4. 断言注册信息 common_assert(self, r, status=100, description="验证码错误") except Exception as e: logger.error(e) raise # 3. 注册 测试方法 短信验证码错误 def test15_reg_img_code_err(self): phone_code = "8899" # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone, verifycode) # 3. 调用注册接口 r = self.api.reg(phone8, password, verifycode, phone_code, invite_phone, dy_server) print(r.json()) try: # 4. 断言注册信息 common_assert(self, r, status=100, description="验证码错误") except Exception as e: logger.error(e) raise # 3. 注册 测试方法 手机号存在 def test16_reg_img_code_err(self): phone = "13700041117" # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone, verifycode) # 3. 调用注册接口 r = self.api.reg(phone, password, verifycode, phone_code, invite_phone, dy_server) print(r.json()) try: # 4. 断言注册信息 common_assert(self, r, status=100, description="手机已存在") except Exception as e: logger.error(e) raise # 3. 注册 测试方法 密码为空 ---bug def test17_reg_img_code_err(self): password = "" # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone, verifycode) # 3. 调用注册接口 r = self.api.reg(phone, password, verifycode, phone_code, invite_phone, dy_server) print(r.json()) try: # 4. 断言注册信息 common_assert(self, r, status=100, description="密码不能为空") except Exception as e: logger.error(e) raise # 3. 注册 测试方法 未同意协议 --bug def test18_reg_img_code_err(self): dy_server = "off" # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone, verifycode) # 3. 调用注册接口 r = self.api.reg(phone, password, verifycode, phone_code, invite_phone, dy_server) print(r.json()) try: # 4. 断言注册信息 common_assert(self, r, status=100, description="同意") except Exception as e: logger.error(e) raise """登录 逆向""" # 4. 登录 测试方法 用户不存在 def test19_login(self): phone = "134220000" r = self.api.login(phone, password) print("登录结果:", r.json()) try: # 4. 断言登录信息 common_assert(self, r, status=100, description="用户不存在") except Exception as e: logger.error(e) raise # 4. 登录 测试方法 密码为空 def test20_login(self): password = "" r = self.api.login(phone, password) print("登录结果:", r.json()) try: # 4. 断言登录信息 common_assert(self, r, status=100, description="密码不能为空") except Exception as e: logger.error(e) raise # 4. 登录 测试方法 密码错误次数 def test21_login_pwd_err_verify(self): password = "******" r = self.api.login(phone, password) r = self.api.login(phone, password) r = self.api.login(phone, password) common_assert(self, r, status=100, description="锁定") print("登录结果:", r.json()) logger.info("登录.密码错误1-3次结果:{}".format(r.json())) print("暂停60秒.....") sleep(60) self.api.login(phone, password="******") try: # 4. 断言登录信息 common_assert(self, r, status=200, description="登录成功") except Exception as e: logger.error(e) raise # 5. 登录 测试方法 未登录 def test22_is_not_login(self): # 2.判断是否登录 r = self.api.islogin() try: # 4. 断言登录信息 common_assert(self, r, status=250, description="您未登陆") except Exception as e: logger.error(e) raise
class TestLoanFlow(unittest.TestCase): def setUp(self) -> None: # 清除数据 DBUtil.mysql_conn() # 获取session对象 self.session = requests.session() # 获取ApiRegLogin对象 self.api_reglog = ApiRegLogin(self.session) self.approve = Approve(self.session) self.trust = ApiTrust(self.session) self.loan = Loan(self.session) def tearDown(self) -> None: logger.info("正在关闭session对象") # 关闭session对象 self.session.close() # DBUtil.mysql_conn() def test01(self): # 1. 获取图片验证码 r = self.api_reglog.reg_img_code(random.random()) try: self.assertEqual(200, r.status_code) except Exception as e: logger.error(e) raise # 2. 获取短信验证码 self.api_reglog.reg_sms_code(phone,imgVerifycode,type=type) # 3. 调用注册接口 self.api_reglog.reg(phone, password, imgVerifycode, phone_code, dy_server, invite_phone) # 4. 登录 self.api_reglog.login(phone, password) # 5.判断是否登录 self.api_reglog.islogin() # 6.认证 self.approve.api_approve("张三", "362322199512036344") # 7.查询认证信息 self.approve.api_approve_info() # 8.开户 r =self.trust.api_trust() # 9.调用第三方开户 result = parser_html(r) logger.info("解析开户数据结果为:{}".format(result)) r = self.session.post(url=result[0], data=result[1]) print("三方开户结果为:", r.text) logger.info("三方开户结果为:{}".format(r.text)) self.assertIn("OK", r.text) # 10.充值,第三方充值 r = self.trust.api_recharge_code() logger.info("获取充值验证码结果:{}".format(r.status_code)) r = self.trust.api_recharge(100, 8888) print("充值结果", r.json()) # 调用第三方充值 result = parser_html(r) logger.info("解析充值数据结果为:{}".format(result)) r = self.session.post(url=result[0], data=result[1]) print("三方充值结果为:", r.text) logger.info("三方充值结果为:{}".format(r.text)) self.assertIn("OK", r.text) # 11.调用投资 self.loan.api_loan_info(id) # 12.第三方投资 r = self.loan.api_tender(id, amount) logger.info("投资结果:{}".format(r.json())) print("投资结果", r.json()) # 调用第三方投资 result = parser_html(r) logger.info("解析投资数据结果为:{}".format(result)) r = self.session.post(url=result[0], data=result[1]) print("三方投资结果为:", r.text) logger.info("三方投资结果为:{}".format(r.text)) try: self.assertIn("OK", r.text) except Exception as e: logger.error(e) raise
class TestRegLogin(unittest.TestCase): # 初始化 def setUp(self) -> None: # 获取session对象 self.session = requests.session() logger.info("正在获取session对象:{}".format(self.session)) # 获取ApiRegLogin对象 self.api = ApiRegLogin(self.session) logger.info("正在获取ApiRegLogin对象:{}".format(self.api)) # 结束 def tearDown(self) -> None: logger.info("正在关闭session对象") # 关闭session对象 self.session.close() # 1.注册图片验证码 测试方法 @parameterized.expand(read_json("register_login.json","img_code_case")) def test01_img_code(self,random,expect_code): # 调用图片验证码接口 r = self.api.reg_img_code(random) # 断言 响应200 print("响应状态码:", r.status_code) try: self.assertEqual(expect_code, r.status_code) except Exception as e: logger.error(e) raise # 2. 注册 短信验证码 @parameterized.expand(read_json("register_login.json", "sms_code_case")) def test02_sms_code(self,phone,imgverifycode,type,expect_code,expect_status,description): # 1. 获取图片验证码 目的: 使用session对象自动记录cookie self.api.reg_img_code(random.random()) # 2. 获取短信验证码 r = self.api.reg_sms_code(phone,imgverifycode,type=type) print("获取短信验证码 结果为: ", r.json()) try: # 调用断言方法 common_assert(self, r,status_code=expect_code,status=expect_status, description=description) except Exception as e: logger.error(e) raise # 3. 注册 测试方法 @parameterized.expand(read_json("register_login.json", "reg_case")) def test03_reg(self,phone4,password,imgVerifyCode,phone_code,dy_server,invite_phone,expect_code,status,description): # 1. 获取图片验证码 self.api.reg_img_code(random.random()) # 2. 获取短信验证码 self.api.reg_sms_code(phone4, imgVerifyCode) # 3. 调用注册接口 r = self.api.reg(phone4, password, imgVerifyCode, phone_code, dy_server, invite_phone) print("响应状态码:", r.json()) logger.info("请求数据:{} 响应结果:{}".format( (phone4, password, imgVerifyCode, phone_code, dy_server, invite_phone, expect_code, status, description), r.json())) try: # 4. 断言注册信息 common_assert(self, r,status_code=expect_code,status=status,description=description) except Exception as e: logger.error(e) raise # 4. 登录 测试方法 @parameterized.expand(read_json("register_login.json", "login_case")) def test04_login(self,keywords, password, expect_code): r = self.api.login(keywords, password) logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json())) print("登录结果:", r.json()) if "error" in password: logger.info("锁定60验证...") r = self.api.login(keywords, password) logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json())) print("登陆结果:", r.json()) r = self.api.login(keywords, password) logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json())) print("登陆结果:", r.json()) time.sleep(60) r = self.api.login("13600001111", "q123456") logger.info("请求数据:{} 响应数据:{}".format((keywords, password, expect_code), r.json())) print("登陆结果:", r.json()) try: # 4. 断言登录信息 common_assert(self, r, status_code=expect_code) except Exception as e: logger.error(e) raise # 5. 是否登录 测试方法 @parameterized.expand(read_json("register_login.json", "islogin_case")) def test05_is_login(self,phone4,password,expect_code): # 1.调用登录 self.api.login(phone4, password) # 2.判断是否登录 r = self.api.islogin() print("登录查询结果:", r.json()) logger.info("请求数据:{} 执行结果:{}".format((phone4, password, expect_code), r.json())) try: common_assert(self, r, status=expect_code) except Exception as e: logger.error(e) raise