zoukankan      html  css  js  c++  java
  • (四十八)自动化测试高级应用之HTML测试报告-测试报告文件名

    随笔记录方便自己和同路人查阅。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

      学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。

    #------------------------------------------------我是可耻的分割线-------------------------------------------

    测试报告文件名

    在每次运行测试之前,都要手动修改报告的名称,如果忘记修改,就会把之前的报告覆盖,这样做显然很麻烦,那么有没有办法使每次生成的报告名称都不重复并且有意义?最好的方法是在报告中假如当前时间,这样生成的报告既不会重叠,又能更清晰地知道报告的生成时间。

    Pythontime模块中提供了丰富的关于时间操作的方法,可以利用这些方法来完成这个需求。

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

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

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

    time.strftime():用来获得当前时间,可以将时间格式化为字符串。

    python中时间日期格式符号(区分大小写)如下表:

    序号

    指令

    含义

     

    %a

    星期几的简写

     

    %A

    星期几的全程

     

    %w

    十进制表示的星期几(值从06,星期天为0

     

    %d

    十进制表示的每月的第几天

     

    %b

    月份的简写

     

    %B

    月份的全称

     

    %m

    十进制表示的月份

     

    %y

    不带世纪部分的十进制年份(值从099

     

    %Y

    带世纪部分的十进制年份

     

    %H

    24小时制的小时

     

    %l

    12小时制的小时

     

    %p

    本地的AMPM的等价显示

     

    %M

    十时制表示的分钟数

     

    %S

    十进制的秒数

     

    %f

    十进制的微妙,零填充左边

     

    %Z

    当前时区的名称

     

    %j

    十进制表示的每年的第几天

     

    %U

    一年的星期数(00~53),星期天为星期的开始

     

    %W

    一年的星期数(00~53),星期一为星期的开始

     

    %x

    本地相应的日期表示

     

    %X

    本地相应的时间表示

     

    %%

    %号本身

    继续打开测试用例,做如下修改。

    # !/usr/bin/env python
    # -*- coding: UTF-8 –*-
    __author__ = 'Mr.Li'
    
    from selenium import webdriver
    import unittest,time
    from HTMLTestRunner import HTMLTestRunner
    
    class Baidu(unittest.TestCase):
        '''百度搜索测试'''
        def setUp(self):
            self.driver = webdriver.Chrome()
            self.driver.maximize_window()
            self.driver.implicitly_wait(10)
            self.base_url = 'http://www.baidu.com'
    
        def test_baidu_search(self):
            '''搜索关键字:HTMLTestRunner'''
            driver = self.driver
            driver.get(self.base_url + "/")
            driver.find_element_by_id('kw').clear()
            driver.find_element_by_id('kw').send_keys('HTMLTestRunner')
            driver.find_element_by_id('su').click()
            title = driver.title
            self.assertEqual(title,"百度一下,你就知道")
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == '__main__':
        testunit = unittest.TestSuite()
        testunit.addTest(Baidu('test_baidu_search'))
    
        #按照一定格式获取当前时间
        now = time.strftime("%Y-%m-%d %H_%M_%S")
    
        #定义报告的存放路径
        filename = '../report/' + now + 'result.html'
        fp = open(filename,'wb')
        #定义测试报告
        runner = HTMLTestRunner(stream=fp,
                                title='百度搜索测试报告',
                                description='用例执行情况:')
        runner.run(testunit)#运行测试用例
        fp.close()#关闭报告文件

    通过strftime()方法指定的格式获取当前时间,将当前时间的字符串赋值给now便利。将now通过加号(+)拼接到生成的测试报告的文件名中。再次运行测试用例,生成的测试报告文件名如下图:

     

    # !/usr/bin/env python
    # -*- coding: UTF-8 –*-
    __author__ = 'Mr.Li'

    from selenium import webdriver
    import unittest,time
    from HTMLTestRunner import HTMLTestRunner

    class Baidu(unittest.TestCase):
        '''百度搜索测试'''
        def setUp(self):
            self.driver = webdriver.Chrome()
            self.driver.maximize_window()
            self.driver.implicitly_wait(10)
            self.base_url = 'http://www.baidu.com'

        def test_baidu_search(self):
            '''搜索关键字:HTMLTestRunner'''
            driver = self.driver
            driver.get(self.base_url + "/")
            driver.find_element_by_id('kw').clear()
            driver.find_element_by_id('kw').send_keys('HTMLTestRunner')
            driver.find_element_by_id('su').click()
            title = driver.title
            self.assertEqual(title,"百度一下,你就知道")

        def tearDown(self):
            self.driver.quit()

    if __name__ == '__main__':
        testunit = unittest.TestSuite()
        testunit.addTest(Baidu('test_baidu_search'))

        #按照一定格式获取当前时间
        now = time.strftime("%Y-%m-%d %H_%M_%S")

        #定义报告的存放路径
        filename = '../report/' + now + 'result.html'
        fp = open(filename,'wb')
        #定义测试报告
        runner = HTMLTestRunner(stream=fp,
                                title='百度搜索测试报告',
                                description='用例执行情况:')
        runner.run(testunit)#运行测试用例
        fp.close()#关闭报告文件

  • 相关阅读:
    正能量
    战略定位
    市场营销
    品牌营销
    CSS3圆角,阴影,透明
    iOS开发的22个奇谲巧技
    [设计模式] javascript 之 策略模式
    让网站和APP更具动感的几点建议
    JAVASCRIPT 之escape 介绍
    CSS2.0中最常用的18条技巧
  • 原文地址:https://www.cnblogs.com/lirongyang/p/11595816.html
Copyright © 2011-2022 走看看