zoukankan      html  css  js  c++  java
  • Python+Selenium之HTMLTestRunner

    下载 HTMLTestRunner 模块

    下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

    保存路径:将下载的HTMLTestRunner.py文件复制到Python安装路径下的Lib目录

    验证:在Python交互模式下引入HTMLTestRunner模块,如系统没有报错,则说明添加成功

    修改HTMLTestRunner(针对Python3)

    因为HTMLTestRunner是基于Python2开发的,如果在Python3环境下使用,需要对其部分内容进行修改。使用notepad++打开HTMLTestRunner.py文件,修改如下内容: 

    第94行,将 import StringIO修改成import io

    第539行,将 self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO()

    第631行,将 print >> sys.stderr, ‘ Time Elapsed: %s‘  %(self.stopTime-self.startTime)修改成print(sys.stderr, ‘ TimeElapsed: %s‘ % (self.stopTime-self.startTime))

    第642行,将 if not rmap.has_key(cls):修改成 if not cls in rmap:

    第766行,将 uo = o.decode(‘latin-1‘)修改成 uo = e

    第772行,将 ue = e.decode(‘latin-1‘)修改成 ue = e 

    一个简单的例子

    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from HTMLTestRunner import HTMLTestRunner     #导入HTMLTestRunner模块
    import unittest,time
    
    class BaiduIdeTest(unittest.TestCase):
    #三引号表示doc string类型注释,用来描述函数、类和方法
    '''baidu search testing''' def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "https://www.baidu.com/" def test_baidu_ide(self):
    '''Search Keyword''' 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() time.sleep(5) self.assertEqual(u"HTMLTestRunner_百度搜索", driver.title) def tearDown(self): self.driver.quit() if __name__ == "__main__": #构造测试套件 testsuit = unittest.TestSuite() testsuit.addTest(BaiduIdeTest("test_baidu_ide"))
    #按照一定格式获取当前时间,%Y表示带世纪的年(2019),%y表示不带世纪的年(19),time.strftime()表示获得当前时间并格式化字符串
        now = time.strftime("%Y%m%d_%H%M%S")
        #将当前时间加入到报告文件名称中
        filename = './'+now+'result.html'
    #定义测试报告存放路径,通过open()方法以二进制写模式('wb')打开当前目录下的result.heml,如果没有,则自动创建。 fp = open('./result.html','wb') #定义测试报告,调用HTMLTestRunner模块下的HTMLTestRunner类,stream 指定测试报告文件,title 定义测试报告的标题,description 定义测试报告的副标题 runner = HTMLTestRunner(stream=fp,title='自动化测试报告',description='用例执行情况:')
    #通过HTMLTestRunner的run()方法来运行测试套件中的测试用例
    runner.run(testsuit) #关闭测试报告 fp.close()
    复制代码你可以根据测试需要添加多个测试,例如再新加一个类以及测试方法,然后通过 testsuit.addTest 把类和方法加进去,如果需要添加的测试比较多,可以通过discover方法,例子如下:
    from unittest import defaultTestLoader
    case_path = './TestCases' 
    def get_allcase():
    discover = unittest.defaultTestLoader.discover(case_path, pattern="test_Create_GL_Indicative_Quoted.py")
    testsuite = unittest.TestSuite()
    testsuite.addTest(discover)
    return testsuite

    if __name__ == "__main__":
    now = time.strftime("%Y%m%d_%H%M%S")
    filename = 'C:MIG_Portal_AutomationTestReports/' + now + 'result.html'
    fp = open(filename, 'wb')
    runner = HTMLTestRunner(stream=fp, title='automation report', description='case execution status')
    runner.run(get_allcase())
    fp.close()

     
  • 相关阅读:
    leetcode 155. Min Stack 、232. Implement Queue using Stacks 、225. Implement Stack using Queues
    leetcode 557. Reverse Words in a String III 、151. Reverse Words in a String
    leetcode 153. Find Minimum in Rotated Sorted Array 、154. Find Minimum in Rotated Sorted Array II 、33. Search in Rotated Sorted Array 、81. Search in Rotated Sorted Array II 、704. Binary Search
    leetcode 344. Reverse String 、541. Reverse String II 、796. Rotate String
    leetcode 162. Find Peak Element
    leetcode 88. Merge Sorted Array
    leetcode 74. Search a 2D Matrix 、240. Search a 2D Matrix II
    Android的API版本和名称对应关系
    spring 定时任务执行两次解决办法
    解析字符串为泛型的方法
  • 原文地址:https://www.cnblogs.com/AmyHu/p/10616670.html
Copyright © 2011-2022 走看看