python生成html测试报告_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测试报告如下:

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 二.测试 ...

selenium+python自动化91-unittest多线程生成报告(BeautifulReport)

前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...

随机推荐

Inna and Sequence

Codeforces Round #220 (Div. 2) D:http://codeforces.com/contest/374/problem/D 题意:给你m个数,这m个数是递增的.然后给你n ...

SQL Server | Mysql 对表的unique 的实现方式

在ANSI SQL 标准中unique 有两种实现方式 1.是可以插入多个空值.也就是说多个null值看成是互不相同的. 2.是只可以插入一个空值,也主是说把所有的空值看也是相同的. 在SQL Ser ...

Rsync的工作方式

Rsync的工作方式(来自网络) 1)拷贝本地文件: 当SRC和DES路径信息中不包含冒号":"分隔符时,就启用这种工作模式: [root@cmmailapp1 /]# rsync ...

.Net程序员学用Oracle系列(27):PLSQL 之游标、异常和事务

1.游标 1.1.游标属性 1.2.隐式游标 1.3.游标处理及案例 2.异常 2.1.异常类别 2.2.异常函数 2.3.异常处理及案例 3.事务 3.1.开始事务.结束事务 3.2.自治事务 3. ...

http_load压力测试windows版使用方法及结果分析

工具下载: https://pan.baidu.com/s/1gftN13H 配置说明:解压后将cygwin1.dll 放置到 C:\Windows\system目录下,将http_load.exe ...

IntelliJ IDEA创建多模块依赖项目

刚从Eclipse转IDEA, 所以记录一下IDEA的使用 创建多模块依赖项目 1. 新建父工程 这样就创建好了一个普通项目,一般我们会把src删掉,在此项目下新建新的模块 2. 新建子模块 创建供前 ...

BZOJ:1185: [HNOI2007]最小矩形覆盖

1185: [HNOI2007]最小矩形覆盖 这计算几何……果然很烦…… 发现自己不会旋转卡壳,补了下,然后发现求凸包也不会…… 凸包:找一个最左下的点,其他点按照与它连边的夹角排序,然后维护一个栈用 ...

《HelloGitHub》第 37 期

公告 欢迎熟悉 C# 热爱开源的小伙伴加入我们,点此联系我 第 37 期 兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub ...

vue教程自学笔记(三)

五.Class与Style绑定 可以用v-bind用于class和style,表达式结果类型除了字符串,还可以是对象或数组. 1.绑定HTML Class 对象语法:给v-bind:class传递一个 ...

rabbitmq (二) 持久化

默认情况下rabbitmq 是根据消费者多少依次投递,投递后就删除消息. 消息不会重复投递给不同的消费者. 消费者如果遇到长时间的任务,会执行完一个消息之后再执行下一个消息, 消费者持久化: 如果一个 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值