1.将测试需要的所有步骤集中到一个class,例:
class Test( object ): ''' 登录租户使用,需要浏览器显示书签并且triones-web在书签栏中 浏览器有账号密码自动填充 登录账号在乘法云Finance(克隆)租户中 ''' def test001( self ): t = 0 #测试内容 return t ''' 测试录入凭证使用,可在登录之后调用 ''' def test002( self , account_code): t = 0 #测试内容 return t |
2.在与项目同名py文件中引入unittest
import time import sys import unittest import HTMLTestRunner from main import Test def custom_resize_method(w, h, sch_resolution, src_resolution): return int (w), int (h) # 替换默认的RESIZE_METHOD auto_setup(__file__) # 引入unittest class fs_finance(unittest.TestCase): def __init__( self , methodName = 'runTest' ): super (fs_finance, self ).__init__(methodName) @staticmethod def parametrize(testcase_klass): tesenames_add = [ 'test001' , 'test001' ] print (testnames) for name in testnames: return suite #增加测试用例 class Testadd(fs_finance): # 这里的装饰器@classmethod必须有,标识为一个类方法 @classmethod def setUpClass( self ): """setUpClass为类的初始化方法,在整个类运行前执行只执行一次""" pass def setUp( self ): """为测试方法的初始化,每个case运行前执行一次""" pass def tearDown( self ): """清理函数,和setUp类似,每个case执行后执行一次""" pass @classmethod def tearDownClass( cls ): """和setUpclass类似,在调用整个类测试方法完成后执行一次""" pass #测试用例1 def test001( self ): """test001,这里的字会展示到测试报告的'用例集/测试用例'列""" Test().test001() self .assertEqual(result, 0 ) #测试用例2 def test002( self ): """test002""" result = Test().test002() self .assertEqual(result, 0 ) class Test001( object ): # 替换默认的RESIZE_METHOD def test( self ): stream = fp, verbosity = 2 , title = u '自动化测试报告' , description = '详细测试用例结果' , # 不传默认为空 tester = u 'test' ) Test001().test() |
3.将下面的HTMLTestRunner.py复制到测试项目目录下与项目同名py文件同级
4.airtest的生成报告的命令需要指定log.html的路径
--outfile . eportlog.html