一、unittest运行测试用例的几种方式
1、通过testcase.main()来执行测试用例:
import unittest
import requests
import json
class testcase(unittest.TestCase):
def test_01(self):
url = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&siteId=2808&search=1'
data = {
'searchKey': "测试",
'x': '30',
'y': '8'
}
headers = {
'Content-Type': 'application/json'
}
res = requests.post(url=url, data=json.dumps(data), headers=headers)
print(res)
if __name__ == '__main__':
unittest.main()
2、通过testsuit来执行测试用例:
import unittest
import requests
import json
class testcase(unittest.TestCase):
def test_01(self):
url = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&siteId=2808&search=1'
data = {
'searchKey': "测试",
'x': '30',
'y': '8'
}
headers = {
'Content-Type': 'application/json'
}
res = requests.post(url=url, data=json.dumps(data), headers=headers)
print(res)
def test_02(self):
url = 'http://www.oktest.org.cn'
res = requests.get(url=url,data=None,headers=None)
print(res)
if __name__ == '__main__':
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(testcase("test_01"))
suite.addTest(testcase("test_02"))
# 执行用例
runner = unittest.TextTestRunner()
runner.run(suite)
3、通过testLoader的方式:
import unittest
import requests
import json
class testcase(unittest.TestCase):
def test_01(self):
url = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&siteId=2808&search=1'
data = {
'searchKey': "测试",
'x': '30',
'y': '8'
}
headers = {
'Content-Type': 'application/json'
}
res = requests.post(url=url, data=json.dumps(data), headers=headers)
print(res)
def test_02(self):
url = 'http://www.oktest.org.cn'
res = requests.get(url=url,data=None,headers=None)
print(res)
if __name__ == '__main__':
# 此用法可以同时测试多个类
suite1 = unittest.TestLoader().loadTestsFromTestCase("test_01")
suite2 = unittest.TestLoader().loadTestsFromTestCase("test_02")
suite = unittest.TestSuite([suite1,suite2])
unittest.TextTestRunner(verbosity=2).run(suite)
二、requests重构封装
import unittest
from base.runmain import RunMain
class testcase(unittest.TestCase):
def setUp(self):
print("case执行前")
def test_01(self):
url = 'http://www.oktest.org.cn/siteApp/command/ecGzSubSearch?fid=t_xmosta&siteId=2808&search=1'
data = {
'searchKey': "测试",
'x': '30',
'y': '8'
}
headers = {
'Content-Type': 'application/json'
}
run = RunMain()
res = run.run_main(url=url,data=data,headers = headers,method='post')
print(res)
def test_02(self):
url = 'http://www.oktest.org.cn'
run = RunMain()
res = run.run_main(url=url,data=None,headers=None,method='get')
print(res)
def tearDown(self):
print("case执行后")
if __name__ == '__main__':
unittest.main()