国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python自動化測試- 自動化框架及工具

這篇具有很好參考價值的文章主要介紹了python自動化測試- 自動化框架及工具。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1???概述

手續(xù)的關(guān)于測試的方法論,都是建立在之前的文章里面提到的觀點:

  • 功能測試不建議做自動化
  • 接口測試性價比最高
  • 接口測試可以做自動化

后面所談到的?測試自動化?也將圍繞著?接口自動化?來介紹。

本系列選擇的測試語言是 python 腳本語言。由于其官方文檔已經(jīng)對原理有了比較清楚的解釋,本文就不做一些多余的翻譯工作了。偏向于實戰(zhàn)部分,而且為了偏向?qū)崙?zhàn),也會結(jié)合 IDE 工具和項目組織來進(jìn)行講解。

理由如下:

腳本語言,開發(fā)和迭代的效率極高
第三方的擴展庫極多,有很我現(xiàn)成的工具可以使用
在正式進(jìn)入到 自動化測試 的領(lǐng)域之前,先要建立這樣的價值觀。在Google內(nèi)部工程師發(fā)布的軟件測試的出版物里面提到:

“軟件的自動化測試是有成本的,而且成本不低,基本上相當(dāng)于在原有的 功能開發(fā)工程 的基礎(chǔ)上再建立一個平行的 測試開發(fā)工程 ”。

也就是說,如果你對自動化測試有你的期望值,那么就肯定是要付出相應(yīng)的代價和精力的。好的東西也是需要優(yōu)秀的人花大量的時間去完成的。

2???PyUnit測試框架

使用?python?作為自動化編程語言,那么就自然的使用?pyunit?作為自動化測試框架了。

如下部分的內(nèi)容主要來自于 pyunit 的官方文檔,本文僅僅做了一些翻譯和結(jié)構(gòu)上的簡單調(diào)整。這部分屬于測試框架的基本原理和概念部分,在進(jìn)行代碼編寫前,有必要進(jìn)行了解。

python的單元測試框架 PyUnit,可以認(rèn)為是 Java 語言下的單元測試框架 JUnit 的 Python 語言實現(xiàn)版本,甚至其作者之一 Kent Beck 就是 JUnit 的作者。

unittest要達(dá)到如下目標(biāo):

支持自動化測試
讓所有的測試腳本共享 開啟(setup) 和 關(guān)閉(shutdown) 的代碼
可以通過集合(collections)的方式來組織測試用例腳本
將所有的測試腳本從測試報告框架中獨立出來
為了達(dá)到以上目標(biāo),unittest支持如下幾個重要概念:

測試裝置(test fixture)

為一個或者多個測試用例做一些準(zhǔn)備工作,例如:連接一個數(shù)據(jù)庫,創(chuàng)建一個目錄,或者開啟一個進(jìn)程

測試用例(test case)

測試用例是測試行為的最小單元,通過對一些輸入輸出值的對比來進(jìn)行測試檢查

測試套件(test suite)

將 測試用例 或者 測試用例集合 聚合組織起來的集合??梢耘繄?zhí)行一個測試套件內(nèi)所有的測試用例

測試執(zhí)行器(test runner)

組織安排測試腳本執(zhí)行活動的組件。測試執(zhí)行器通過一些圖形界面,文本界面或者返回一些特殊的值來展示測試腳本的測試結(jié)果。主要用于生成測試報告

3???基本示例

如下示例也來自于官方文檔?basic_demo.py

# coding:utf-8
"""
基本的自動化測試腳本 basic_demo.py
"""
__author__ = 'zheng'
 
import unittest
 
 
class TestStringMethods(unittest.TestCase):
 
    def setUp(self):
        print 'init by setUp...'
 
    def tearDown(self):
        print 'end by tearDown...'
 
    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')
 
    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())
        self.assertTrue('Foo'.isupper())
 
    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # check that s.split fails when the separator is not a string
        with self.assertRaises(TypeError):
            s.split(2)
 
 
if __name__ == '__main__':
    unittest.main()

雖然官方文檔里面介紹了幾種組織測試用例腳本的方式:

獨立測試函數(shù)
單用例測試類
多用例測試類
不同的編寫形態(tài),會有不同的組織方式,具體的可以看官方文檔。本文作者研究過官方文檔后,最喜歡第三種方式 多用例測試類,也就是上面基本示例的方式,這種方式具有如下特點:

測試類 繼承于 unittest.TestCase
一個測試類可以管理多個 測試腳本函數(shù)
測試腳本函數(shù)名稱需要以 test_ 開頭
一個測試類里面的所有的測試函數(shù)共享 setUp和tearDown函數(shù)
在控制臺中運行此程序:

?  src git:(master) ? python basic_demo.py
init by setUp...
Fend by tearDown...
init by setUp...
end by tearDown...
.init by setUp...
end by tearDown...
.
======================================================================
FAIL: test_isupper (__main__.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "basic_demo.py", line 24, in test_isupper
    self.assertTrue('Foo'.isupper())
AssertionError: False is not true
 
----------------------------------------------------------------------
Ran 3 tests in 0.001s
 
FAILED (failures=1)
?  src git:(master) ?

前面的基本例子的?main?函數(shù)采用的最簡單的方式,直接運行所有的測試用例,并生成默認(rèn)的文本報告。其實只需要對調(diào)用函數(shù)做一些簡單的修改,可以將這些測試用例進(jìn)行合理組織,并獲取其實有用的數(shù)據(jù)信息,以便和信息系統(tǒng)進(jìn)行集成,形成較好的擴展。

if __name__ == '__main__':
    # unittest.main()
    # 裝載測試用例
    test_cases = unittest.TestLoader().loadTestsFromTestCase(TestStringMethods)
    # 使用測試套件并打包測試用例
    test_suit = unittest.TestSuite()
    test_suit.addTests(test_cases)
    # 運行測試套件,并返回測試結(jié)果
    test_result = unittest.TextTestRunner(verbosity=2).run(test_suit)
    #生成測試報告
    print("testsRun:%s" % test_result.testsRun)
    print("failures:%s" % len(test_result.failures))
    print("errors:%s" % len(test_result.errors))
    print("skipped:%s" % len(test_result.skipped))

運行后生成的輸出為:

?  src git:(master) ? python basic_demo.py
test_isupper (__main__.TestStringMethods) ... init by setUp...
FAIL
end by tearDown...
test_split (__main__.TestStringMethods) ... init by setUp...
end by tearDown...
ok
test_upper (__main__.TestStringMethods) ... init by setUp...
end by tearDown...
ok
 
======================================================================
FAIL: test_isupper (__main__.TestStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "basic_demo.py", line 23, in test_isupper
    self.assertTrue('Foo'.isupper())
AssertionError: False is not true
 
----------------------------------------------------------------------
Ran 3 tests in 0.001s
 
FAILED (failures=1)
testsRun:3
failures:1
errors:0
skipped:0

顯然上面的輸入結(jié)果已經(jīng)將測試的結(jié)果進(jìn)行了統(tǒng)計,這些數(shù)據(jù)都是一次測試活動中的重要指標(biāo),這些數(shù)據(jù)可以入庫,和測試信息管理系統(tǒng)集成,后期生成儀表盤或者統(tǒng)計報表,形成穩(wěn)定和產(chǎn)品測試線路圖,這些都是和開發(fā)相關(guān)的了,在此不再多敘述了。

結(jié)合上面的具體例子,我們也可以找到上一節(jié)的理論部分對應(yīng)的具體實現(xiàn)對象:

測試裝置(test fixture)

由setUp函數(shù)來做初始化工作,由tearDown做銷毀工作

測試用例(test case)

對應(yīng)TestCase類,或者更細(xì)化的對應(yīng)里面的測試腳本函數(shù)

測試套件(test suite)

對應(yīng)TestSuite類

測試執(zhí)行器(test runner)

對應(yīng)TextTestRunner類

4???IDE工具

既然需要開發(fā)代碼的生產(chǎn)力,那么就需要介紹一款I(lǐng)DE工具--?Pycharm。不可否認(rèn),它是目前最專注/專業(yè)的?Python?語言的?IDE?了。在對Pyunit?也有比較好的支持。

主要支持如下:

可視化的編程開發(fā)(這是IDE的基本特點)

對測試結(jié)果進(jìn)行可視化的展示

導(dǎo)出生成HTML的測試報告

可視化控制用例執(zhí)行(這個在開發(fā)調(diào)試階段很方便,可以方便控制指定代碼單元運行)

讓一個目錄下的所有用命執(zhí)行
讓單個文件內(nèi)所有用例執(zhí)行
讓單個文件內(nèi)的單個用命執(zhí)行

4.1???運行和調(diào)試

Pycharm?對測試腳本提供了靈活的運行和調(diào)試支持。

通過pycharm,開發(fā)人員可以不用編寫main函數(shù),就可以實現(xiàn)如下功能:

運行一個文件下所有的測試類
運行一個測試類的所有測試腳本
運行一個測試類的某個測試腳本
其中 "運行一個測試類的某個測試腳本" 比較有用,適合在開發(fā)階段快速地對單個腳本進(jìn)行開發(fā)和運行調(diào)試。

使用方法:

將光標(biāo)移動到測試函數(shù)內(nèi)部
按下運行快捷鍵 ctrl+shift+F10 (Eclipse快捷鍵方案)
如果要斷點調(diào)試,則使用Debug模式,即可對單個函數(shù)運行和斷點調(diào)試了。

當(dāng)然,也可以不必借用IDE,而通過對testSuit操作,也可以實現(xiàn)以上功能,但是IDE卻提供了更靈活直接的選擇。這只是一些IDE使用技巧,也不多述了。

4.2???結(jié)果可視化

對于前面提到的例子,如果選擇在IDE中運行此程序,會看到如下效果:

python自動化測試- 自動化框架及工具,軟件測試,python,自動化,開發(fā)語言,功能測試,軟件測試,自動化測試,程序人生

可以看到全部運行通過。如果刻意將其中一個弄成不通過的,則會顯示如下的結(jié)果:

python自動化測試- 自動化框架及工具,軟件測試,python,自動化,開發(fā)語言,功能測試,軟件測試,自動化測試,程序人生

最后感謝每一個認(rèn)真閱讀我文章的人,禮尚往來總是要有的,這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

python自動化測試- 自動化框架及工具,軟件測試,python,自動化,開發(fā)語言,功能測試,軟件測試,自動化測試,程序人生

這些資料,對于【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!?

python自動化測試- 自動化框架及工具,軟件測試,python,自動化,開發(fā)語言,功能測試,軟件測試,自動化測試,程序人生文章來源地址http://www.zghlxwxcb.cn/news/detail-834681.html

到了這里,關(guān)于python自動化測試- 自動化框架及工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 自動化測試工具Selenium的基本使用方法,軟件測試基礎(chǔ)

    自動化測試工具Selenium的基本使用方法,軟件測試基礎(chǔ)

    browser.find_element(By.ID,‘kw’).send_keys(“美女”) browser.find_element_by_id(‘kw’).send_keys(‘性感’) 2.通過標(biāo)簽name屬性進(jìn)行定位 browser.find_element_by_name(“wd”).send_keys(“Linux”) browser.find_element(By.NAME,‘wd’).send_keys(“美女”) 3.通過標(biāo)簽名進(jìn)行定位 browser.find_element_by_tag_name(“input”).

    2024年04月22日
    瀏覽(97)
  • 【軟件測試】UI自動化框架,數(shù)據(jù)驅(qū)動 vs 關(guān)鍵字驅(qū)動怎么選

    【軟件測試】UI自動化框架,數(shù)據(jù)驅(qū)動 vs 關(guān)鍵字驅(qū)動怎么選

    讓我們先從分析一端自動化測試案例的代碼開始我們的旅程。以下是我之前寫的一個自動化測試的小Demo。這個Demo 基于Selenium與Java 。 自動化測試小Demo 它要測試的東西其實是要看一下百度搜索能不能返回興業(yè)銀行的官網(wǎng)。我們分析一下這段代碼都包含些什么東西。 第一,這

    2024年02月13日
    瀏覽(29)
  • 【軟件測試】python+selenium自動化測試

    【軟件測試】python+selenium自動化測試

    一、什么是自動化測試 自動化測試指軟件測試的自動化,在預(yù)設(shè)狀態(tài)下運行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最 后評估運行結(jié)果。將人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的過程。 單元測試 java的單元測試框架是Junit,在這里不再贅述。 接口自動化 接口測試就是

    2023年04月09日
    瀏覽(34)
  • python+selenium自動化軟件測試 :多線程

    python+selenium自動化軟件測試 :多線程

    運行多個線程同時運行幾個不同的程序類似,但具有以下優(yōu)點: 進(jìn)程內(nèi)共享多線程與主線程相同的數(shù)據(jù)空間,如果他們是獨立的進(jìn)程,可以共享信息或互相溝通更容易. 線程有時稱為輕量級進(jìn)程,他們并不需要多大的內(nèi)存開銷,他們關(guān)心的不是過程便宜. 一個線程都有一個開始

    2024年02月16日
    瀏覽(37)
  • WEB自動化測試(selenium工具)框架、面試題

    WEB自動化測試(selenium工具)框架、面試題

    ? ? ? ? ? ? 讓程序員代替人為去驗證web項目功能的過程 ? ???1)需求變動不頻繁 測試腳本的穩(wěn)定性決定了自動化測試的維護成本。如果軟件需求變動過于頻繁,測試人員需要根據(jù)變動的需求來更新測試用例以及相關(guān)的測試腳本,而腳本的維護本身就是一個代碼開發(fā)的過程,

    2024年02月03日
    瀏覽(32)
  • Python自動化測試5大框架類型,你怎么Python實現(xiàn)自動化測試?

    我們需要一個什么樣的框架 既然要搭一個框架,我們首先得弄明白我們需要一個什么樣的框架,這個框架要支持什么功能? 框架主要的作用就是幫助我們編寫更加簡單而且好維護的用例,讓我們把主要精力放在測試用例的設(shè)計上,那么我們就需要把所有額外的東西抽象出來

    2024年02月06日
    瀏覽(24)
  • python自動化測試框架學(xué)習(xí)

    今天發(fā)現(xiàn)python有多個框架可以用于自動化測試方面,下面整理了下splinter和urllib2框架,對于 pywinauto框架和ruby框架先記錄下以后需要用到再學(xué)習(xí)。 python有個splinter框架: 特性: 1、可以模擬瀏覽器行為,訪問指定的URL,并且可以指定不同的瀏覽器類型。比如firefox或者chrome等。

    2024年02月08日
    瀏覽(16)
  • Selenium+python怎么搭建自動化測試框架、執(zhí)行自動化測試用例、生成自動化測試報告、發(fā)送測試報告郵件

    Selenium+python怎么搭建自動化測試框架、執(zhí)行自動化測試用例、生成自動化測試報告、發(fā)送測試報告郵件

    本人在網(wǎng)上查找了很多做自動化的教程和實例,偶然的一個機會接觸到了selenium,覺得非常好用。后來就在網(wǎng)上查閱各種selenium的教程,但是網(wǎng)上的東西真的是太多了,以至于很多東西參考完后無法系統(tǒng)的學(xué)習(xí)和應(yīng)用。 以下整理的只是書中自動化項目的知識內(nèi)容,介紹怎么搭

    2024年02月05日
    瀏覽(30)
  • 【自動化測試】基于Selenium + Python的web自動化框架

    【自動化測試】基于Selenium + Python的web自動化框架

    Selenium是一個基于瀏覽器的自動化工具,她提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: ? 1、Selenium IDE:Firefox的一個擴展,它可以進(jìn)行錄制回放,并可以把錄制的操作以多種語言(例如java,p

    2024年02月07日
    瀏覽(19)
  • 【軟件測試/自動化測試】WebDriver+Selenium實現(xiàn)瀏覽器自動化

    【軟件測試/自動化測試】WebDriver+Selenium實現(xiàn)瀏覽器自動化

    前言 使用場景 原理 環(huán)境準(zhǔn)備 ?開發(fā) First Script WebDriver API 瀏覽器 元素 總結(jié) Selenium是一款可以自動化操作瀏覽器的開源項目,最初的目的是瀏覽器功能的自動化測試,但是隨著項目的發(fā)展,人們根據(jù)它的特性也用來做一些更多的有意思的功能而不僅僅是UI的自動化測試工具。

    2024年02月08日
    瀏覽(64)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包