Python+Selenium----使用HTMLTestRunner.py生成自動化測試報告2(使用PyCharm )

 

1.說明html

在我前一篇文件(Python+Selenium----使用HTMLTestRunner.py生成自動化測試報告1(使用IDLE ))中簡單的寫明瞭,如何生產測試報告,可是使用IDLE很麻煩,並且在實際的項目中也不方便,因此,查了不少資料來研究如何在PyCharm中生成測試報告,故此記錄一下(命名什麼的不規範就不要糾結了)。python

 

2.步驟web

第一步:下載HTMLTestRunner.pychrome

 參考:Python+Selenium----使用HTMLTestRunner.py生成自動化測試報告1(使用IDLE )app

 

第二步:PyCharm中生成測試報告函數

前提:方法運行成功,顯示ok,可是沒有生成測試報告,此時能夠採用一下幾種方法中的其中一種,進行處理,而後就能夠順利的生成測試報告啦~~單元測試

方法一:修改運行路徑(比較麻煩,每次運行的文件可能都會更改)測試

(項目結構圖)ui

(2.1.1)PyCharm右上角,在要運行的文件上點擊宣選擇"Edit Configurations..."url

 

(2.1.2)在打開的彈出框中,在Python tests裏找到本身要運行的文件,修改他的路徑爲運行文件路徑,修改完成以後先apply再點擊ok,而後在PyCharm右上角點擊「運行」,運行完成,就會發現測試報告生成了奧~~

 

方法二:在main函數上運行.py文件

 咱們在main函數中簡單的添加一句打印代碼,發現,在.py中隨意找個地方,鼠標右鍵「run」以後,並未打印,可見,腳本運行時並無執行裏面的代碼,爲何沒有執行裏面的代碼呢?由於在Pycharm不一樣的地方右鍵後,運行腳本獲得的結果是不同的,執行的代碼段不同,因此,咱們能夠在main函數處,右鍵,運行腳本,運行完成,就會生成測試報告文件(可是,我在main函數處運行,我一個測試運行,跑了2次,尷尬,暫時不知道爲何)

import time
import unittest
import HTMLTestRunner #直接將HTMLTestRunner.py放到python安裝目錄下的Lib中便可
from selenium import webdriver

class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome('F:\\Python\\workspace\\selenium_demo3_test\\drivers\\chromedriver.exe')
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

    # 百度搜索用例
    def test_baidu_search(self):
        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)

    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)

if __name__ == "__main__":
    print('11111111111111111111111111111111111111111111')
    # 定義一個單元測試容器
    testunit = unittest.TestSuite()
    # 將測試用例加入到測試容器中
    testunit.addTest(Baidu("test_baidu_search"))

    # 定義個報告存放路徑,支持相對路徑
    filename = 'F:\\Python\\workspace\\demo\\result.html'
    fp = open(filename, 'wb')
    # 定義測試報告
    runner = HTMLTestRunner.HTMLTestRunner(
        stream=fp,
        title='測試報告hahhahahah',
        description='用例執行狀況hahhaahha:'
    )
    # 運行測試用例
    runner.run(testunit)
    # 寫完以後必須將fp關閉,不然報告是空的
    fp.close()

 

 方法三:定義一個函數,講main函數中的內容複製到該函數中,在main函數中,運行本身定義的函數,也能夠正常生成測試報告

 

testBaogao.py

import time
import unittest
import HTMLTestRunner #直接將HTMLTestRunner.py放到python安裝目錄下的Lib中便可
from selenium import webdriver
from demo.Baogao import *

class Baidu(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome('F:\\Python\\workspace\\selenium_demo3_test\\drivers\\chromedriver.exe')
        self.driver.implicitly_wait(30)
        self.base_url = "http://www.baidu.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

    # 百度搜索用例
    def test_baidu_search(self):
        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)


    def tearDown(self):
        self.driver.quit()
        self.assertEqual([], self.verificationErrors)



if __name__ == "__main__":
    print('1111111111111111111111111111111111111')
    test_baogao()  #調用另一個函數
   

Baogao.py

import  HTMLTestRunner
from demo.testBaogao import *


def test_baogao():
 # 定義一個單元測試容器
 testunit = unittest.TestSuite()
 # 將測試用例加入到測試容器中
 testunit.addTest(Baidu("test_baidu_search"))

 # 定義個報告存放路徑,支持相對路徑
 filename = 'F:\\Python\\workspace\\demo\\result.html'
 fp = open(filename, 'wb')
 # 定義測試報告
 runner = HTMLTestRunner.HTMLTestRunner(
    stream=fp,
    title=u'百度搜索測試報告',
    description=u'用例執行狀況:'
 )
 # 運行測試用例
 runner.run(testunit)
 # 寫完以後必須將fp關閉,不然報告是空的
 fp.close()

如上demo所示,在testBaogao.py文件中隨意地方運行文件便可生成測試報告。

相關文章
相關標籤/搜索