当自动化测试完成后,我们需要一份漂亮且通俗易懂的测试报告来展示自动化测试成果,仅仅一个简单的log文件是不够的

HTMLTestRunner是Python标准库unittest单元测试框架的一个扩展,它生成易于使用的HTML测试报告,下载后,将其复制到Python的安装目录即可,

例如,Windows,放在...\python27\Lib目录下

补充知识:

1、Python注释

普通注释用#表示

文本注释,放在类或者方法下面:""" 注释内容 """或者  '''注释内容  '''

2、测试报告以测试时间来命名,防止报告被覆盖

time.time():获取当前时间戳

time.ctime():当前时间的字符串形式

time.localtime():当前时间的struct_time形式

time.strftime():用来获取当前时间,可以讲师时间格式化为字符串

下面是项目集成生成测试报告源码:

test_case文件下的两个测试用例

test_baidu.py

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "https://www.baidu.com/"
self.verificationErrors = []
self.accept_next_alert = True def test_baidu(self):
u"""百度搜索用例"""
driver = self.driver
driver.get(self.base_url + "/?tn=98012088_5_dg&ch=12")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("select")
driver.find_element_by_id("su").click() time.sleep(3) def tearDown(self):
self.driver.quit() if __name__ == "__main__":
unittest.main()

  test_firefox.py

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re class FireFox(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://start.firefoxchina.cn/"
self.verificationErrors = []
self.accept_next_alert = True def test_firefox(self):
u"""Firefox搜索用例"""
driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_id("search-key").clear()
driver.find_element_by_id("search-key").send_keys("selenium webdriver")
driver.find_element_by_id("search-submit").click()
time.sleep(5) def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()

  执行测试用例的run_test.py

#coding=utf-8
import unittest, doctest
import HTMLTestRunner
import time
#相对路径定义用例存放的路径和报告存放路径
test_dir='./test_case'
test_dir1='./report'
#查找对应路径下的测试用例放到discover中
discover=unittest.defaultTestLoader.discover(test_dir,pattern='test*.py')
#定义带有当前测试时间的报告,防止前一次报告被覆盖
now=time.strftime("%Y-%m-%d %H_%M_%S")
filename=test_dir1+ '/' +now+ 'result.html'
#二进制打开,准备写入文件
fp = file(filename, 'wb')
#定义测试报告
runner =HTMLTestRunner.HTMLTestRunner(
stream=fp,
title=u'搜索测试报告',
description=u'用例执行情况')
runner.run(discover)

  最后生成的生成的html测试报告如下:

最新文章

  1. jquery手写实现单页滚动导航
  2. hibernate学习(5)——多对多关系映射
  3. 关于SQL安装问题及安装前的准备
  4. ASP.NET 页面缓存
  5. linux中wc命令用法
  6. Javascript AMD学习
  7. Redis常用方法
  8. Android NDK开发指南---Application.mk文件和android.mk文件
  9. Java高新技术 反射机制
  10. Disruptor3.0的实现细节
  11. Linux telnet远程登录操作
  12. php7函数,声明,返回值等新特性介绍
  13. 66. 二叉树的前序遍历.md
  14. ERP简介(一)
  15. .NET Core开发日志——Model Binding
  16. HDU2717-Catch That Cow (BFS入门)
  17. vue 返回上一页后,上一页由参数渲染的内容无法显示
  18. Android将view保存为图片并放在相册中
  19. stenciljs 学习八 组件测试
  20. 解决insert语句插入时,需要写列值的问题

热门文章

  1. 引用数据类型(类)和ArrayList
  2. UT源码 065
  3. 第二章第一个项目——关于mime
  4. 《JavaScript权威指南》(第6版)翻译错误集 更新中。。。
  5. Adding Cache-Control headers to Static Files in ASP.NET Core
  6. 自己动手设计并实现一个linux嵌入式UI框架
  7. JavaScript 放置在文档最后面可以使页面加载速度更快
  8. idea新建maven项目没有src目录
  9. wpf Route Event Code Snippet
  10. 微软 eshop 数据存储之sqlserver