python接口自动化--封装和参数化及unittest用例

Posted xiaoyujuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python接口自动化--封装和参数化及unittest用例相关的知识,希望对你有一定的参考价值。

一、

封装登录接口并进行参数化--禅道登录为例

  

login函数封装了登录接口并对登录账号和密码进行参数化
is_login_sucess函数封装了判断登录成功的方法
 1 #testLogin.py
 2 import requests
 3 
 4 #登录案例
 5 
 6 def login(s,admin,pwd):
 7     s = requests.session()
 8     url = "http://127.0.0.1/zentao/user-login-L3plbnRhby8=.html"
 9     headers =
10         "Content-Type": "application/x-www-form-urlencoded"
11     
12     body = 
13         "account":admin,
14         "password":pwd,
15         "referer":"http://127.0.0.1/zentao/my/",
16         "keepLogin[]": "on"
17     
18 
19     r = s.post(url,headers=headers,data=body,verify=False)
20     # print(r.content.decode(‘utf-8‘))
21     return r.content.decode(utf-8)
22 
23 def is_login_sucess(loginRes):
24         ‘‘‘
25         判断是否登录成功
26         :param login:登录函数返回的内容
27         :return: Ture or False
28         ‘‘‘
29         if "登录失败" in loginRes:
30             print("登录失败")
31             return False
32         elif "parent.location=" in loginRes:
33             print("登录成功")
34             return True
35         else:
36             print("出现异常,登录失败")
37             return False
38 
39 if __name__ == __main__:
40     s = requests.session()
41     loginRes = login(s,admin,e10adc3949ba59abbe56e057f20f883e)
42     result = is_login_sucess(loginRes)
43     print(result)

 

二、unittest设计测试用例

 1 import unittest
 2 import requests
 3 from common.testLogin import login,is_login_sucess#导入包、方法
 4 
 5 class TestCaseCSH(unittest.TestCase):
 6     ‘‘‘禅道登录‘‘‘
 7     @classmethod
 8     def setUpClass(cls):
 9         cls.s = requests.session()
10 
11     def tearDown(self):
12         self.s.cookies.clear()
13     # def setUp(self):
14     #     self.s = requests.session()
15     #
16     # def tearDown(self):
17     #     self.s.close()
18 
19     def testlogin01(self):
20         ‘‘‘测试用例01‘‘‘
21         res = login(self.s,"admin","e10adc3949ba59abbe56e057f20f883e")
22         result = is_login_sucess(res)
23         #期望结果,登录成功True
24         self.assertTrue(result)
25 
26 
27     def testlogin02(self):
28         ‘‘‘测试用例02‘‘‘
29         res = login(self.s,"dmin","e10adc3949ba59abbe56e057f20f883e")
30         result = is_login_sucess(res)
31         #期望结果,登录失败False
32         self.assertFalse(result)
33 
34 
35 if __name__ == __main__:
36     unittest.main()

 

以上是关于python接口自动化--封装和参数化及unittest用例的主要内容,如果未能解决你的问题,请参考以下文章

unittest单元测试框架中的参数化及每个用例的注释

python接口自动化(三十五)-封装与调用--流程类接口关联(详解)

JS中的柯里化及精巧的自动柯里化实现

python接口自动化—封装获取常量的类

你离高薪 offer 只差一个接口自动化入门,我是认真的

python自动化接口测试之封装