def test_api(self,item): res=HttpRequest.http_request(item['method'],item['url'],eval(item['data']),getattr(GetCookie,'Cookie')) if res.cookies: #利用反射存储cookie值 setattr(GetCookie,'Cookie',res.cookies) try: self.assertEqual(str(item['expected']),res.json()['resultcode']) TestResult='PASS' except AssertionError as e: TestResult='Failed' MyLog.error("执行用例出错:{0}".format(e)) raise e finally: DoExcel.write_back(test_case_path,item['sheet_name'],item['case_id']+1,res.text,TestResult) MyLog.info("获取到的结果是:{0}".format(res.text))
def http_request(method,url,data,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: MyLog.info("请求的方法不对") except Exception as e: MyLog.error("请求报错了:{0}".format(e)) raise e return res
if __name__ == '__main__': #注册 register_url = "https://www.ketangpai.com/UserApi/login" register_data = { "email": "*****@*****.**", "password": "******", "remember": 0 } #登录 login_url = "https://www.ketangpai.com/UserApi/login" login_data = { "email": "*****@*****.**", "password": "******", "remember": 0 } #充值 recharge_url = "https://www.ketangpai.com/UserApi/login" recharge_data = { "email": "*****@*****.**", "password": "******", "remember": 0 } login_res = HttpRequest().http_request(login_url, login_data, "get") recharge_res = HttpRequest().http_request(recharge_url, recharge_data, "post", login_res.cookies) # print("cookie的值:{}".format(login_res.cookies)) my_logger.info("this is a rae") print("充值结果:{}".format(recharge_res.json()))
from tools.project_path import * from tools.test_http_request import TestHttpRequest from tools.my_log import MyLog from tools.send_email import sendEmail my_logger = MyLog() suite = unittest.TestSuite() # suite.addTest(TestHttpRequest("test_api"))#测试类实例 loader = unittest.TestLoader() #并行多个用例方法一 # suite.addTest(loader.loadTestsFromModule(test_login)) # suite.addTest(loader.loadTestsFromModule(test_recharge)) suite.addTest(loader.loadTestsFromTestCase(TestHttpRequest)) with open(test_report_path, 'wb') as file: #执行用例 my_logger.info("开始执行用例") runner = HTMLTestRunner.HTMLTestRunner(stream=file, verbosity=2, title="这是个单元测试报告1115", description="这是个单元测试报告1115") runner.run(suite) my_logger.info("完成执行用例") # sendEmail().send_email("*****@*****.**",r"D:\PycharmProjects\python11\API_AUTO_PRO\test_result\html_report\test_api.html") ''' 执行Jenkins命令 java -jar jenkins.war '''