Appium使用HTMLTestRunner生成测试报告

1、python学习环境:python3.5,python3的环境需要修改HTMLTestRunner.py 文件中的部分代码。若是在python2.7环境下就直接到HTMLTestRunner 官网上下载即可,不需做任何修改。
IDE:pycharm
2HTMLTestRunner原理:代替unittest的TextTestRunner功能,使测试结果以测试报告的方式展示,方便查看。
3、HTMLTestRunner.py文件的结构:
class OutputRedirector(object)
# 将输出进行重定向

class Template_mixin(object)
# 定义生成HTML结果文件所需要的模板。
# 如果我们想改变HTML的格式等待,可以在这里进行改动

class _TestResult(TestResult)
# 定义继承自 unittest.TestResult 的 类。
# 这里重写了 unittest.TestResult 的多个方法,比如 startTest(self, test) 等等

class HTMLTestRunner(Template_mixin)
# 这里可以说是使用 HTMLTestRunner.py 的入口。定义了多个我们可以看到的方法,比如 run(self, test)

class TestProgram(unittest.TestProgram)
# 这里继承自 unittest.TestProgram 类,重写了 runTests 方法。
# 用于命令行执行测试

4、步骤:A、将HTMLTestRunner放入F:\python\Lib目录中,在pycharm中import一下看是否成功;B、main函数中的写法

if __name__ == '__main__':
    cases_MyTestCase = unittest.TestLoader().loadTestsFromTestCase(MyTestCase)
    cases_my_testRunner = unittest.TestLoader().loadTestsFromTestCase(my_testRunner.TestOne)
    suite = unittest.TestSuite([cases_MyTestCase, cases_my_testRunner])
    suite.addTest(my_testRunner.TestOne('test_2'))
    now = time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime(time.time()))
    fp = open(now + 'Result.html', 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp, verbosity=2, title='Test Report', description=u'Result:')
    runner.run(suite)
    print(now)
    fp.close()
5、学习过程中遇到的坑:
A、直接点右键运行结束后没有报异常,但就是没有生成测试报告,为什么?
原因:点右键运行或点右上角的运行按钮或ctrl+shift+F10都运行的是编译器自带的unittest in xxx.py,所以需要按Alt+shift+F10,选择xxx来运行,这样就是从自己的main入口开始执行
B、时间的模板需要用下划线或横杠,加空格或冒号时编译器就会报错
C、测试报告生成了,但是打开是空的,这是为什么?
若打开文件没有使用with方法,则需要在最后调用fp.close()函数将文件关闭,这样才会写入最后的测试结果。
posted @ 2017-07-23 18:54  八方风雨之观星客  阅读(1384)  评论(0编辑  收藏  举报