使用unittest 执行测试用例

1、建立一个函数或者类(继承unittest.TestCase)

 1 #coding=utf-8
 2 
 3 import sys
 4 import requests
 5 import HTMLParser
 6 import unittest
 7 
 8 sys.path.append(r'E:\workspace\python\test')
 9 
10 from Library.gzxnhLibrary import getGzxnhSrtS02
11 
12 def Test_request(operCode, userName, passWord):
13     url = "http://218.201.202.252/hisinterface/service/request"
14     data = getGzxnhSrtS02(operCode,userName,passWord)
15     headers = {"Content-Type": "text/xml", "SOAPAction": ""}
16 
17     #post请求
18     response = requests.post(url, data, headers = headers)
19 
20     #获取状态码的值
21     ret = [response.status_code]
22 
23     #判断状态码的值是否等于200,不等于200直接返回False
24     if response.status_code != 200:
25         return False
26 
27     #状态码等于200以后,获取返回的内容
28     xml = response.text
29     #print xml
30 
31     #对内容进行转译,再获取响应的内容
32     xml = HTMLParser.HTMLParser().unescape(xml)
33     #print xml
34     pos1 = xml.find('<state>')
35     pos2 = xml.find('</state>')
36     #print xml[pos1+len('<state>'):pos2]
37 
38     # 判断内容的值,和字符串true进行判断,等于返回True;反之,返回False
39     if xml[pos1+len('<state>'):pos2] == 'true':
40         return True
41     else:
42         return False
43 
44 if __name__ == '__main__':
45     print Test_request('S02','js','08A73F723AE68F27945DB81EC8DB45CB')
View Code

2、创建一个自定义的TestCase类(继承unittest.TestCase)

 1 #coding=utf-8
 2 
 3 from huanhuan import Test_request
 4 import unittest
 5 
 6 class Test_hh(unittest.TestCase): #定义一个类,类名(继承unittest.TestCase功能,才能使用这个功能)
 7     def testcase1(self):
 8         ret = Test_request('S02','js','08A73F723AE68F27945DB81EC8DB45CB')
 9         self.assertEqual(ret,True)
10 
11 class Test_bb(unittest.TestCase):
12     def testcase2(self):
13         ret = Test_request('S02','js','08A73F723AE68F27945DB81EC8DB45CB111')
14         self.assertEqual(ret, True)
View Code

3、通过suite.addTest构建测试集,一个个添加测试用例

 1 #coding=utf-8
 2 
 3 import testCase11
 4 import unittest
 5 
 6 #构建测试集
 7 def suite1():
 8     suite = unittest.TestSuite()  #创建一个TestSuite 的对象
 9     suite.addTest(testCase11.Test_hh("testcase1"))  #使用对象去调取函数 addTest(通过另一个case模块的名 找到里面的类的名称(写类下面测试用例的名称))
10     suite.addTest(testCase11.Test_bb("testcase2"))
11 
12     return suite
View Code

4、也可以通过TestLoader构建测试集,一次性添加一个类的测试用例

 1 #coding=utf-8
 2 
 3 import unittest
 4 import testCase11
 5 
 6 #构建TestLoader()测试集
 7 def suite2():
 8     suite = unittest.TestLoader().loadTestsFromTestCase(testCase11.Test_hh) #括号里面放类的名称
 9     return suite
10 
11 def suite3():
12     suite = unittest.TestLoader().loadTestsFromTestCase(testCase11.Test_bb)
13     return suite
View Code

5、执行测试用例(一个测试集、二个测试集)

 1 #coding=utf-8
 2 
 3 import testSuite11
 4 import unittest
 5 import loader11
 6 
 7 # 执行一个测试集
 8 def runner1():
 9     suite = testSuite11.suite1()
10     unittest.TextTestRunner().run(suite) #执行的是testSuite11内的函数的返回值
11 
12 def runner2():
13     suite1 = testSuite11.suite1()
14     suite2 = loader11.suite2()
15     #合并成一个suite
16     suite = unittest.TestSuite([suite1, suite2])  # 多个类用列表的形式放在括号内[]
17     #执行
18     unittest.TextTestRunner(verbosity=2).run(suite)  # 第一个括号的值为类的个数
19 
20 if __name__ == '__main__':
21     runner1()
View Code

 

posted @ 2017-11-18 21:08  liuhuanv  阅读(154)  评论(0编辑  收藏  举报