1.生成HTML测试报告

import unittest,sys
from selenium import webdriver
from time import sleep
class TestBaidu(unittest.TestCase):
def setUp(self):
driver_path='/'.join(sys.path[0].split('/')[:-2])+"/driver/chromedriver"
self.driver=webdriver.Chrome(executable_path=driver_path)
self.driver.implicitly_wait(30)
self.base_url="http://www.baidu.com"
def test(self):
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").clear()
driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").send_keys("selenium")
driver.find_element_by_xpath("//input[@value='百度一下' and @id='su']").click()
result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text
assert "百度为您找到相关结果约" in result_text
sleep(3)
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()

runtest.py

import unittest
from HTMLTestRunner import HTMLTestRunner
test_dir="./testcase/testsearch"
discover=unittest.defaultTestLoader.discover(test_dir,pattern="test*.py")
if __name__=="__main__":
fp = open("report/result.html","wb")
runner=HTMLTestRunner(stream=fp,title="百度搜索报告",description="用例执行情况")
runner.run(discover)
fp.close()
  • stream:指定文件
  • title:定义测试报告的标题
  • description:定义测试报告的副标题

2.增加描述,使报告更易读

2.1添加描述

python的注释有2中,comment普通的注释,doc string用于函数、类、方法的描述。

doc string有双引号、三双引号、三单引号

双引号只适合单行,三双引号与三单引号适合多行

如果类和方法有多个引号描述,只会把紧跟类名或方法名后的第一个描述作为doc string,如下图灰色描述。

def add(a,b):
"add()函数需要2个入参,并返回两个参数相加的值"
return a + b

进入python交互界面

from test import add
help(add)
#q退出

2.2测试用例添加描述

注意:HTMLTestRunner只能识别到第一行,即使是三双引号或三单引号的多行描述也只打印第一行。如结果图中test_search2

test_search1.py

# #没有导入pymysql.cursors
import unittest,sys
from selenium import webdriver
from time import sleep
class TestBaidu(unittest.TestCase):
"百度搜索测试"
def setUp(self):
driver_path='/'.join(sys.path[0].split('/')[:-2])+"/driver/chromedriver"
self.driver=webdriver.Chrome(executable_path=driver_path)
self.driver.implicitly_wait(30)
self.base_url="http://www.baidu.com"
def test(self):
"搜索关键字:selenium"
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").clear()
driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").send_keys("selenium")
driver.find_element_by_xpath("//input[@value='百度一下' and @id='su']").click()
result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text
assert "百度为您找到相关结果约" in result_text
sleep(3)
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()

test_search2.py

import unittest,sys
from selenium import webdriver
from time import sleep
class TestBaidu(unittest.TestCase):
'''百度
搜索测试'''
def setUp(self):
driver_path='/'.join(sys.path[0].split('/')[:-2])+"/driver/chromedriver"
self.driver=webdriver.Chrome(executable_path=driver_path)
self.driver.implicitly_wait(30)
self.base_url="http://www.baidu.com"
def test(self):
"""搜索关键字:
Jenkins"""
driver=self.driver
driver.get(self.base_url+"/")
driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").clear()
driver.find_element_by_xpath("//input[@id='kw' and @class='s_ipt']").send_keys("jenkins")
driver.find_element_by_xpath("//input[@value='百度一下' and @id='su']").click()
result_text = driver.find_element_by_xpath("//span[@class='nums_text']").text
assert "百度为您找到相关结果约" in result_text
sleep(3)
def tearDown(self):
self.driver.quit()
if __name__=="__main__":
unittest.main()

runtest.py

import unittest
from HTMLTestRunner import HTMLTestRunner
test_dir="./testcase/testsearch"
discover=unittest.defaultTestLoader.discover(test_dir,pattern="test*.py")
if __name__=="__main__":
fp = open("report/result.html","wb")
runner=HTMLTestRunner(stream=fp,title="百度搜索报告",description="用例执行情况")
runner.run(discover)
fp.close()

3.为测试报告文件添加时间戳,便于识别

runtest.py

import unittest
from time import strftime
from HTMLTestRunner import HTMLTestRunner
test_dir="./testcase/testsearch"
discover=unittest.defaultTestLoader.discover(test_dir,pattern="test*.py")
if __name__=="__main__":
filename="report/"+strftime("%Y_%m_%d_%H_%M_%S")+"_result.html"
fp = open(filename,"wb")
runner=HTMLTestRunner(stream=fp,title="百度搜索报告",description="用例执行情况")
runner.run(discover)
fp.close()

python selenium-6 HTML测试报告的更多相关文章

  1. Python+selenium 2【测试报告】

    HTML报告 http://tungwaiyip.info/software/HTMLTestRunner.html   下载地址 这个扩展非常简单,只有一个HTMLTestRunner.py文件,选 ...

  2. Python +selenium之集成测试报告与unittest单元测试

    随着软件不断迭代,对应的功能也会越来越多,从而对应的测试用例也会呈指数增长.如果将全部的测试用例集成在一个文件中就会显得特别的臃肿而且维护成本也会很高. 一个很好的放大就是将这些测试yo你给里按照功能 ...

  3. Python+selenium自动化生成测试报告

    批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTest ...

  4. Python+Selenium框架 ---自动化测试报告的生成

    本文来介绍如何生成自动化测试报告,前面文章尾部提到了利用HTMLTestRunner.py来生成自动化测试报告.关于HTMLTestRunner不过多介绍,只需要知道是一个能生成一个HTML格式的网页 ...

  5. Python+Selenium 自动化测试获取测试报告内容并发送邮件

    这里封装一个send_mail()方法,用于测试完成后读取测试报告内容,并将测试结果通过邮件发送到接收人 # coding: utf-8 import smtplib from email.mime. ...

  6. 【转】【Python + selenium】linux和mac环境,驱动器chromedriver和测试报告HTMLTestRunner放置的位置

    感谢: 作者:gz_tester,文章:<linux和mac环境,chromedriver和HTMLTestRunner放置的位置> 使用场景 配置python selenium 环境 使 ...

  7. python+selenium +unittest生成HTML测试报告

    python+selenium+HTMLTestRunner+unittest生成HTML测试报告 首先要准备HTMLTestRunner文件,官网的HTMLTestRunner是python2语法写 ...

  8. 使用python selenium进行自动化functional test

    Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...

  9. Python Selenium设计模式-POM

    前言 本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点.应用场景和核心思想有一定的理解和掌握. 为什么要用POM 基于python s ...

  10. Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)

    Jenkins简介 Jenkins是Java编写的非常流行的持续集成(CI)服务,起源于Hudson项目.所以Jenkins和Hudson功能相似. Jenkins支持各种版本的控制工具,如CVS.S ...

随机推荐

  1. DevExpress v17.2新版亮点—DevExtreme篇(三)

    用户界面套包DevExpress DevExtreme v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme v17.2 的New Color Sche ...

  2. 【重大更新】DevExpress v17.2新版亮点—WPF篇(三)

    DevExpress年终击穿底价,单套授权低至67折!仅剩最后10天!查看详情>>> 用户界面套包DevExpress v17.2终于正式发布,本站将以连载的形式为大家介绍各版本新增 ...

  3. centos7 mysql的安装

    本文记录centos7安装mysql的一些过程与遇到的一些坑 下载mysql的压缩包,直接从官网上面下载,链接:http://dev.mysql.com/downloads/mysql/ 选择 MyS ...

  4. Final阶段第1周/共1周 Scrum立会报告+燃尽图 01

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2411] 版本控制:https://git.coding.net/liuyy08 ...

  5. MySQL配置参数详解

    # 以下选项会被MySQL客户端应用读取. # 注意只有mysql附带的客户端应用程序保证可以读取这段内容. # 如果你想你自己的MySQL应用程序获取这些值. # 需要在MySQL客户端库初始化的时 ...

  6. Python id

    # id()函数可以帮我们查看一个变量的内存地址 a = 10 b = 30 print(id(a)) print(id(b)) lst = ["周杰伦","麻花藤&qu ...

  7. golang多核的使用

    实际上协程只是发生在单个进程内部的,要是想充分的发掘多核CPU的潜力,还是需要多进程的支持. 对于多核编程,go是天生支持,那么我们在什么情况下应该用多核心来加速程序,而在什么情况下用单核即可呢? 现 ...

  8. MyEclipse2017CI破解教程

    因为工作中需要有多个MyEclipse去管理不同的项目组的工作,恰逢MyEclipse2017CI发布,下载破解尝鲜,因为之前安装了MyEclipse2016CI7和MyEclipse2014GA,两 ...

  9. socket can demo

    http://www.cnblogs.com/zengjfgit/p/5327689.html

  10. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)

    Unity愤怒的小鸟游戏教程(二) 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) AngryEva游戏效果 ...