Selenium2+python自动化32- 测试报告的易读性【转载】

前言

     前一篇已经介绍了报告的生成方法,本篇小编优化一下测试报告,使测试报告便于大多数阅读。虽然在我们在测试用例开发时为每个用例添加了注释,但测试报告一般是给非测试人员阅读的,如果能在报告中为每一个测试用例添加说明,那么将会使报告更加易于阅读。

    下面还是以百度为例:

一、打开我们的测试用例文件,为每一个测试用例(方法)下面添加注释,如下:

#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 NoSuchAttributeException
import unittest,time,re
import HTMLTestRunner
class Baidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(30)
self.base_url = "http://www.baidu.com/"
self.verificationErrors = []
self.accept_next_alert = True
def test_baidu_search(self):
u"""百度搜索"""
driver = self.driver
driver.get(self.base_url + '/')
driver.find_element_by_id("kw").send_keys("selenium webdriver")
driver.find_element_by_id("su").click()
time.sleep(2)
driver.close()
def test_baidu_set(self):
u"""百度设置"""
driver = self.driver
#进入搜索设置页
driver.get(self.base_url + '/gaoji/preferences.html')
#设置每页搜索结果为 20 条
m=driver.find_element_by_name("NR")
m.find_element_by_xpath("//option[@value='20']").click()
time.sleep(2)
#保存设置的信息
driver.find_element_by_xpath("/html/body/form/div/input").click()
time.sleep(2)
driver.switch_to_alert().accept()
driver.close()
if __name__ == "__main__":
unittest.main()

打开测试报告:



小 u 是避免中文引起的乱码问题。

这样添加中文备注是不是就可读性很强了?大家可以自由的折腾了。

二、报告文件名取当前时间
每次运行测试之前之前都要手动的去修改报告的名称,如果有修改就会把之前的报告覆盖,这样做就会显示得很麻烦,那么有没有办法使每次生成的报告名称都不一样,为了更好的取分报告可以在报告中添加当前的时间,这样我们要想查找某天某时所生成的报告就会变得非常容易。
下面要修改一下执行测试用例的脚本,如下:
#coding=utf-8
import unittest
import time
#这里需要导入测试文件
import baidu
import HTMLTestRunner
testunit=unittest.TestSuite()
testunit.addTest(unittest.makeSuite(baidu.Baidu)) #将测试用例加入到测试容器(套件)中
now=time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time())) #获取当前时间
filename= "D:\\python\\report\\"+ now +"result.html" #定义个报告存放路径,支持相对路径。把当前时间加到报告中
fp = open(filename,"wb")
runner =HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'测试报告',description=u'用例执行情况:')
runner.run(testunit)#执行测试用例

time.time() 获取当前时间戳
time.localtime() 当前时间的 struct_time 形式

重新运行所有测试用例,查看生成的测试报告的文件名,如图:



文件名以前面运行时间命名,所以很容易地找到想要的报告,而且在每次运行测试前不用修改手动修改报告的名字。
posted @ 2017-11-08 18:07  小曺  阅读(249)  评论(0编辑  收藏  举报