pytest-html测试报告

1、安装类库: pytest-html

2、生成默认html报告:pytest --html=报告名称.html

3、执行指定文件生成测试报告:在指定运行脚本下方输入

if __name__ == '__main__':
    pytest.main(['XXX.py','--html=XXReport.html'])

4、定制报告内容

1.在测试报告中追加测试执行人描述信息

进入conftest.py文件(放在框架根目录下)

添加以下代码

#*********************************************************
#在html测试报告中添加测试人信息
@pytest.mark.optionalhook
def pytest_html_results_summary(prefix, summary, postfix):prefix.extend([html.p("测试人: 测试人姓名")])#  执行测试报告,可以使用指令也可以使用main方法如下:
if __name__ == '__main__':pytest.main(['XXX.py','--html=XXReport.html'])

 

2.在测试报告中追加每个测试方法的执行时间

进入conftest.py

添加以下代码

import time
#在html测试报告中添加测试执行时间
@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):cells.insert(1, html.td(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), class_='col-time'))cells.pop()

3.在测试报告中添加错误截图

进入conftest.py

添加以下代码


#导入selenium类库
from selenium import webdriver#定义全局的driver变量
driver = None
#设置一个browser固件
@pytest.fixture(scope='session', autouse=True)
def browser():global driverif driver is None:driver = webdriver.Chrome()return driver#定义截屏方法
def _capture_screenshot():return driver.get_screenshot_as_base64()#定义添加错误图片的钩子函数
@pytest.mark.hookwrapper
def pytest_runtest_makereport(item):"""当测试失败的时候,自动截图,展示到html报告中:param item:"""pytest_html = item.config.pluginmanager.getplugin('html')outcome = yieldreport = outcome.get_result()extra = getattr(report, 'extra', [])if report.when == 'call' or report.when == "setup":xfail = hasattr(report, 'wasxfail')if (report.skipped and xfail) or (report.failed and not xfail):file_name = report.nodeid.replace("::", "_") + ".png"screen_img = _capture_screenshot()if file_name:html = 'screenshot' % screen_imgextra.append(pytest_html.extras.html(html))report.extra = extra

4.备注

钩子函数也叫回调函数

普通函数我们自己定义自己去调用

用系统提供给我门的方法去写代码,代码提交给这个框架去运行,但是我们可以给他定一些具体·的要求

定义参数定义属性肯定是要在公共的configtest ,做初始化的

使用了xml对象里面的 的html方法,来创建html测试报告 ,如果要改也要调用里面的方法和对象,所以需要引入一下

有前缀有总结部分有后缀

def pytest_html_results_summary(prefix,summary,postfuix):
        因为是要添加去测试人字段

        prefix.extend([html.p("测试人":Atstudy_wuxiuna")])

.p就是标签,就是分段       

测试报告里面,失败的测试方法没有详细的记载‘

测试报告可以进行完善’如果是固定这个模式,没有什么可扩展空间了,使用其他的第三放插件

想定制一些自己的信息

钩子函数,设置了没有起效,很简单,是因为conftest用的是broswer的浏览器,但是脚本里面用是自己的浏览器

需要在脚本方法下        加一个browser,把脚本里面的所有self.driver替换成browser,驱动浏览器的函数就可以直接注释掉

html测试框架报告对初始化方法不适配,所有的东西都不完美,同样teardown也是一样的


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部