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:workspacepython est') 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')
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)
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
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
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()