selenium+Python(生成html测试报告)
当自动化测试完成后,我们需要一份漂亮且通俗易懂的测试报告来展示自动化测试成果,仅仅一个简单的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测试报告如下:

selenium+Python(生成html测试报告)的更多相关文章
- 19.Selenium+Python生成测试报告
1.代码如下所示: from selenium import webdriver import unittest import HTMLTestRunner class BaiduSearch(uni ...
- python+selenium +unittest生成HTML测试报告
python+selenium+HTMLTestRunner+unittest生成HTML测试报告 首先要准备HTMLTestRunner文件,官网的HTMLTestRunner是python2语法写 ...
- Python基础(六) python生成xml测试报告
思路: 1.使用xslt样式,这样可以很好的和xml结合,做出漂亮的报告 2.生成xml结构 xslt样式是个很有意思,也很强大的,现在用的很多,很方便就能做出一个漂亮的报告,可以百度一下,语法相当简 ...
- selenium之生成html测试报告--testng.xsl
自制版制作步骤: 1.首先下载一个文件名为testng.xslt-1.1.zip testng.xslt-1.1我在印象笔记里面备份了一份 打开testng.xslt中lib文件夹,找到saxon-8 ...
- Selenium+Java的TestNG测试报告优化
本博主很懒,但学习很勤快,一般能从博客园直接转载的东西,本博主绝不动手写,无奈Selenium+java生成的测试报告在百度上搜索..反正我是没有看到.后来才知道TestNG它可以自动生成测试报告,但 ...
- Python&Selenium&pytest借助allure生成自动化测试报告
一.摘要 本篇博文将介绍Python和Selenium进行自动化测试时,如何借助allure生成自动化测试报告 二.环境配置 首先python环境中安装pytest和pytest_allure_ada ...
- Python&Selenium借助HTMLTestRunner生成自动化测试报告
一.摘要 本篇博文介绍Python和Selenium进行自动化测试时,借助著名的HTMLTestRunner生成自动化测试报告 HTMLTestRunner.py百度很多,版本也很多,自行搜索下载放到 ...
- Python&Selenium借助html-testRunner生成自动化测试报告
一.摘要 本博文将介绍Python和Selenium进行自动化测试时,借助html-testRunner 生成自动化测试报告 安装命令:pip install html-testRunner 二.测试 ...
- Python+selenium自动化生成测试报告
批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...
随机推荐
- mybatis SqlMapConfig.xml
一.SqlMapConfig.xml 1.属性properties 在入门时,以抽取出连接数据库的属性得到properties文件. a.可以通过resource和url来获得属性. b.proper ...
- Android Studio3.2新建项目gradle read time out
试验了好几个小时,看了很多方法,都不管用,运用一下设置好了,记录一下 1. 2.在项目的build.gradle中添加 mavenCentral()maven { url 'https://maven ...
- Linq生成操作之DefautIfEmpty,Empty,Range,Repeat源码分析
Linq生成操作之DefautIfEmpty,Empty,Range,Repeat源码分析 Linq的四种生成运算 DefautIfEmpty,Empty,Range,Repeat 也就是给我们初始化 ...
- IOS 6 自动布局 入门
http://blog.csdn.net/itianyi/article/details/8535392
- MVC的 url 传递参数无效
有些符号(例如“=”)在URL中 直接传递是无效的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码 十六进制值 1. + URL 中+号表 ...
- css3 hover效果
html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 洛谷P4451 [国家集训队]整数的lqp拆分(生成函数)
题面 传送门 题解 我对生成函数一无所知 我们设\(F(x)\)为斐波那契数列的生成函数,\(G(x)\)为答案的生成函数,那么容易得到递推关系 \[g_n=\sum_{i=0}^{n-1}f_ig_ ...
- jquery源码解析:pushStack,end,ready,eq详解
上一篇主要讲解了jQuery原型中最重要的方法init.接下来再讲一些比较常用的原型方法和属性 core_slice = [].slice, jQuery.fn = jQuery.prototype ...
- Linux-Web应用服务性能测试初探
一.服务端与客户端的准备工作 对于服务器最想要的数据就是,每秒支持的并发数,以及相应的内存CPU使用情况. 服务端需要设置最大打开描述符的限制(以支持创建大量的socket),配置socket参数.客 ...
- PHP 数组与CSV文件互转
项目说明 数组导出CSV,ZIP文件,CSV,ZIP文件还原数组(Array export file,file restore array)适用于导入导出会员,商品信息注意:读取中文文件名文件.数据时 ...