導航:首頁 > 編程語言 > python回歸自動化測試案例

python回歸自動化測試案例

發布時間:2022-09-10 20:18:06

Ⅰ 測試新人如何使用python代碼封裝自動化測試的用例

使用Python代碼封裝自動化測試的用例, 意味著將代碼封裝到一個整體中, 在python中面向對象的編程思維方式是最適合封裝了:
①把測試的數據和測試的過程封裝到類的內部成為一個整體, 便於測試數據和測試流程的管理維護;
②Python中面向對象封裝的特性有利於隱藏內部實現的復雜度, 對於調用者來說直接調用即可 ;
③Python面向對象中的類,是實現封裝最佳體現, 把數據和對數據的操作封裝在類的內部,, 對數據起到保護作用, 提高了代碼的安全性和健壯性;
④Python中面向對象的編程模式體現了模塊化的思想, 模塊可以重用, 模塊容易擴展, 簡化測試的流程, 提高測試的效率。
更高效的編寫實現自動化測試用例,Python中面向對象編程思維方式是必須掌握的,親戚在傳智播客學的軟體測試,現在月薪13K。

Ⅱ 如何用python做自動化測試

當然可以
1、編寫Python版本的minicom,這個是自動化測試日誌記錄的需要
用於控制串口輸出的字元顏色,高亮顯示出錯信息,方便開發者在線調試問題
2、控製程式控制電源、程式控制開關,這些可以自動化測試的硬體基礎
3、寫整套測試框架,控制整個測試交互流程,Case管理等等
Python運行起來效率沒那麼高,但是對於編寫來說是非常高效的。

Ⅲ python+appium自動化測試-重復執行測試用例

來自APP android端自動化測試初學者的筆記,寫的不對的地方大家多多指教哦。

在功能測試過程中,經常會遇到一些偶然出現的Bug,需要通過重復執行用例來復現問題,那麼,在自動化測試的過程中,對於一些偶然出現的Bug,也可以針對單個用例,或者針對某個模塊的用例重復執行多次來復現。

重復執行測試用例的方法這邊主要總結了三個:

①重復運行單條或全部測試用例

②測試用例運行失敗後重新運行

③測試用例重復運行直到第一次失敗後停止

要重復執行測試用例,需要先安裝pytest-repeat插件

全局安裝: 即安裝在全局環境中,新創建的工程導入全局環境時會將該包導入,cmd輸入:pip install pytest -repeat,安裝成功後會顯示repeat版本號

局部安裝: 即安裝在當前項目的環境下,新創建的工程不會同步該包,在PyCharm→File→setting,搜索pytest intrepreter,點擊「+」號,如下圖所示:

再搜索pytest-repeat,點擊install package安裝

出現下圖表示安裝成功:

重復執行測試用例的方法有多種,比如:方法一的重復執行單條測試用例;方法二的重復執行每條測試用例;方法三的每條測試用例執行一次,共執行N遍。

在測試用例前添加註解@pytest.mark.repeat(value),value表示重復的次數,來實現單條用例的重復執行。

運行結果為:被裝飾的測試用例test_one會連續執行兩次,再執行test_two,即按照順序,第一個測試用例執行N次,再執行下一個測試用例

在終端傳入-count的方式實現重復執行測試用例

運行結果為:測試用例test_one會連續執行兩次,再執行兩次test_two,即按照執行順序,每一個測試用例都執行N次

注意:-s:表示輸出用例中的調式信息,比如print的列印信息等。

-repeat-scope類似於pytest fixture的scope參數,在終端輸入,-repeat-scope有四個參數:

重運行機制使用到了pytest的插件,插件名稱為:rerunfailures,要使用它,需要先安裝此插件

出現下圖表示安裝成功:

運行結果如下:

注意:

運行結果如下:

將pytest的 -x 選項與pytest-repeat結合使用,可以實現在重復運行測試用例的過程中,測試用例第一次失敗時就停止運行,具體實現方法如下:

運行結果如下:

Ⅳ 如何使用python做android的自動化測試

開始第一個簡單的Android UI自動化測試
1.使用adb命令連接真機或模擬器
2.打開uiautomatorviewer工具
3.使用uiautomatorviewer工具獲取應用的元素進行定位
4.簡單介紹unittest框架的使用方法
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
1.使用adb命令連接真機或模擬器:
手機USB連接電腦,進入開發者模式;
cmd命令:adb devices ,查看手機是否連接
這里寫圖片描述
顯示錯誤
這是因為adb的埠被佔用,我們需要查看是什麼應用佔用了這個埠(5037為adb默認埠)
cmd命令 : netstat -aon|findstr 「5037」
這里寫圖片描述
可以看到佔用5037埠對應的程序的PID號為8388;
cmd命令 : tasklist|findstr 「8388」
這里寫圖片描述
可以看出8388對應的程序為kadb.exe,說明該程序正在使用5037埠;
這時我們需要在任務管理器中結束kadb.exe進程,按快捷鍵「Ctrl+Shift+Esc」調出Windows任務管理器,找到「kadb.exe」,單擊下方的結束進程即可!
這里寫圖片描述
我們再次運行cmd命令:adb devices
這里寫圖片描述
這一步成功後我們才能運行sdk自帶的uiautomatorviewer;
我們需要用uiautomatorviewer工具來獲取元素,用於定位。
cmd命令:uiautomatorviewer,打開uiautomatorviewer界面
這里寫圖片描述
或者找到sdk目錄:sdk\tools中找到uiautomatorviewer.bat文件雙擊運行
這里寫圖片描述
2.打開uiautomatorviewer工具
這里寫圖片描述
我們可以根據text,resource-id,class等元素進行定位
3.使用uiautomatorviewer工具獲取應用的元素進行定位
這里我使用python自帶的IDLE進行編寫測試腳本,打開python文件找到IDLE(python GUI)雙擊打開,如圖:
這里寫圖片描述
4.簡單介紹unittest框架的使用方法
# -*- coding:utf-8 -*-
from uiautomator import device as d
import unittest
class Mytest(unittest.TestCase):
#初始化工作
def setUp(self):
print "--------------初始化工作"
#退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#測試點擊貓寧考勤case
def test_login(self):
d(text="貓寧考勤").click()
print "--------------測試1"
#測試2
def test_z(self):
print "--------------測試2" #這里你可以寫你的第二個測試用例,
#測試3
def test_w(self):
print "--------------測試3" #這里你可以寫你的第三個測試用例。。。。。。。。。。。。。
if __name__ == '__main__':
unittest.main()
結果如下:
Testing started at 21:14 …
————–初始化工作
————–測試1
————–退出清理工作
————–初始化工作
————–測試3
————–退出清理工作
————–初始化工作
————–測試2
————–退出清理工作
Process finished with exit code 0
從結果中我們可以看出unittest框架的運行方式為:
setUp 測試1 tearDown
setUp 測試2 tearDown
setUp 測試3 tearDown
5.使用Python編寫貓寧考勤應用注冊模塊的自動化測試
# -*- coding:utf-8 -*-
from uiautomator import device as d
import time
import unittest
class MyTestSuite(unittest.TestCase):
# 初始化工作
def setUp(self):
print "--------------初始化工作"
# 退出清理工作
def tearDown(self):
print "--------------退出清理工作"
#***************************方法**************************************
# 判斷控制項是否存在 & text
def check_controls_exists(self, controls_text):
if d(text=controls_text).exists:
return 1
else:
return 0
# 判斷按鈕是否置灰 & text & clickable
def check_controls_click_text(self, controls_text):
if d(text=controls_text).info.get("clickable") is True:
return 1
else:
return 0
#assertIn(a, b) a in b
def check_ainb(self,resourceid,b):
if d(resourceId=resourceid).info.get("text") in b:
return 1
else:
return 0
#***********************************************************
# 注冊模塊
def test_Aregister(self):
try:
time.sleep(2)
#貓寧考勤開啟全新時代
self.assertEqual(self.check_controls_click_text("注冊"),1,u"貓寧考勤開啟全新時代")
# 貓寧考勤開啟全新時代--》點擊注冊按鈕進入注冊貓寧界面
d(text="注冊").click()
time.sleep(3)
#注冊貓寧界面
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_phone","請輸入手機號碼"),
1,u"注冊頁面-》請輸入手機號碼")
self.assertEqual(self.check_text("com.isentech.attendancet:id/regis_verifycode","請輸入驗證碼"),
1,u"注冊頁面-》請輸入驗證碼")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0,u"注冊頁面-》獲取驗證碼")
self.assertEqual(self.check_controls_click_text("《中科愛訊服務協議》"), 1,u"注冊頁面-》《中科愛訊服務協議》")
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"注冊頁面-》注冊")
time.sleep(2)
#《中科愛訊服務協議》
d(text="《中科愛訊服務協議》").click()
time.sleep(2)
self.assertEqual(self.check_ainb("com.isentech.attendancet:id/title","服務協議"), 1,u"注冊頁面-》服務協議")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/title_back").click()
time.sleep(1)
#手機號不輸入是否能注冊
d(text="注冊").click()
time.sleep(3)
# 手機號只輸入1個數字是否能注冊&只輸入1個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("1")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入5個數字是否能獲取驗證碼
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text("11111")
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 0)
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_phone").clear_text()
time.sleep(1)
#只輸入手機號是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_phone").set_text(phone_number)
self.assertEqual(self.check_controls_click_text("注冊"), 0)
time.sleep(1)
d(text="注冊").click()
time.sleep(1)
#輸入正確的驗證碼&獲取驗證碼是否高亮
d(resourceId="com.isentech.attendancet:id/regis_verifycode").set_text("5648")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("獲取驗證碼"), 1)
time.sleep(2)
#密碼只輸入1個數字是否能注冊&注冊按鈕是否高亮
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("1")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("1")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"密碼只輸入1個數字是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入不相同的密碼是否能注冊
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("12345")
time.sleep(1)
self.assertEqual(self.check_controls_click_text("注冊"), 0,u"輸入不相同的密碼是否能注冊")
time.sleep(1)
d(resourceId="com.isentech.attendancet:id/regis_pass").clear_text()
d(resourceId="com.isentech.attendancet:id/regis_passAgain").clear_text()
time.sleep(1)
#輸入正確的密碼是否能注冊&我已同意是否打鉤
d(resourceId="com.isentech.attendancet:id/regis_pass").set_text("123456")
d(resourceId="com.isentech.attendancet:id/regis_passAgain").set_text("123456")
time.sleep(1)
self.assertEqual(self.check_controls_click_resourceId("com.isentech.attendancet:id/regis_agree"), 1)
self.assertEqual(self.check_controls_click_text("注冊"), 1)
time.sleep(2)
d(text="注冊").click()
time.sleep(8)
except Exception, e:
print u"Error: 注冊模塊有問題\n", e
def test_app():
test_unit = unittest.TestSuite()
test_unit.addTest(MyTestSuite("test_Aregister"))
if __name__ == "__main__":
# 測試app
unittest.main()

Ⅳ Python實現性能自動化測試竟然如此簡單

一、思考❓❔

1.什麼是性能自動化測試?

2.Python中的性能自動化測試庫?

locust庫

二、基礎操作

1.安裝locust

安裝成功之後,在cmd控制台將會新增一條命令,可輸入如下命令查看:

2.基本用法

三、綜合案例演練

1.編寫自動化測試腳本

2.使用命令行運行

3.打開web ui界面進行配置

設置並發用戶數為10,每5秒創建一個用戶

壓測過程截圖

美輪美奐的壓測報告

壓測失敗詳情

下載壓測統計數據

下載的壓測統計數據csv文件

六、總結

出處:https://www.cnblogs.com/keyou1/

Ⅵ 如何使用python做android的自動化測試

目前大家對Python都有一個共識,就是他對測試非常有用,自動化測試里Python用途也很廣,但是Python到底怎麼進行自動化測試呢?今天就簡單的向大家介紹一下怎麼使用Python進行自動化測試,本文只是自己的一點點分享,若有錯誤,請大家多多批評指正。這里主要介紹的是一些Python測試的框架
1、單元測試
a、unittest :Python自帶的單元測試框架
b、pyunit:Junit的Python版本

2、使用Pyhon進行Windows GUI測試
這部分的功能主要就是和大家平時使用的QTP類似。在Windows下我們可以使用pywinauto這個開源的框架:
來個小例子:
app.Notepad.MenuSelect("Help->About Notepad")
app.AboutNotepad.OK.Click()
app.Notepad.Edit.TypeKeys ("pywinauto Works!", with_spaces = True)
呵呵,強大吧

3、使用Python進行Web自動化測試
使用Python進行Web自動化測試的工具有很多,這里就向大家推薦一下我比較熟悉的Selenium(Web Driver)吧。

Ⅶ python自動化測試面試題問答匯總

(1)根據需求文檔,深挖需求文檔中的細節進行用例設計
(2)根據自己的測試經驗和一些常識補充用例
(3)參考同事曾寫過的用例或網上的資料進行一些用例補充

測試序號、測試模塊、測試環境、前置條件、操作步驟和數據、預期結果、實際結果、是否通過、備注

(1)等價類劃分法:把所有可能輸入的數據劃分為若干個區域,然後從每個區域中取少數有代表性的數據進行測試即可。有效等價類、無效等價類
(2)邊界值分析法:輸入條件是一個取值范圍,對取值范圍的邊界進行邊界值測試;輸入條件中規定輸入數據是一個有序集合,對有序集合的邊界進行邊界值測試。
(3)錯誤推測法:根據經驗的補充,如超長混合字元串,全形字元串、數字「0」及單引號
(4)正交表分析法:多個輸入框組合的情況,可以藉助正交設計助手小工具,有效減少用例設計個數
(5)因果判定法:

(1)測試用例是否依據需求文檔進行編寫
(2)測試用例中的執行步驟、輸入數據是否清晰、簡潔、正確;對於重復度高的執行步驟,是否進行了簡化
(3)每個測試用例是否有明確的預期結果
(4)測試用例中是否有多餘的用例
(5)測試用例中是否覆蓋了需求文檔的所有功能點,是否有遺漏

(1)要確保測試用例是針對需求文檔編寫的,確保測試點能覆蓋所有的需求點
(2)保證操作步驟、具體數據、預期結果的清晰性、簡潔性、明確性,以確保測試用例的可操作性和可復用性
(3)確保有足夠多的異常測試用例,同時要確保沒有多餘的重復用例
(4)對測試用例進行評審

(1)大致體驗一下軟體,對於如邊界值、輸入數據類型不明確的問題集中反饋給產品經理,待產品經理給出相應的標准後再設計用例。
(2)對於測試 軟體的過程中,發現有些模塊功能不明確影響用戶正常使用的地方,會及時反饋給測試經理,協助解決這類問題
(3)會積極參與項目的各種討論會議;查看已有的測試用例、bug庫中已有的bug、已有的用戶手冊和幫助文檔,咨詢產品人員並盡可能多的了解相關需求信息,並以此為基礎設計測試用例
(4)參考軟體功能,直接設計用例,然後提交給測試組(必要情況下可以提交給整個項目組)進行評審,得到統一意見。

(1)根據常識想像出ATM機的功能點:插卡、退卡、輸入密碼、修改密碼、余額查詢、取錢、存錢、轉賬等
(2)根據自己的操作經驗,分別制定每個功能點的需求文檔。

(1)根據經驗判斷,像頁面顯示,布局,兼容性問題都是前端的問題
(2)查後端服務日誌,如果日誌沒有記錄,很可能是介面沒有調用成功,有可能是這個功能沒有與後端進行交互,也就不存在後端的問題。如果有日誌輸出可以查一下日誌信息,進一步分析
(3)如果是前端顯示的數據有誤,可以查介面,如果介面返回的實際沒有問題,就是前端的問題,如果介面返回數據有問題,前端顯示的與後端一致,就是後端的問題
(4)查看狀態碼,404可能是前端傳參錯誤或後台介面改了,500是後端的問題

(1)bug概述
(2)bug具體描述
(3)bug的嚴重程度:致命問題、嚴重問題、一般問題、
(4)bug的處理優先順序:立即處理、高優先順序處理、排隊處理、低優先順序處理
(5)bug的指派人
(6)bug的狀態
(7)附件截圖或日誌
(8)其他信息點

通常要對修復好的產品進行多輪測試,回歸測試,因為即使之前的bug修復好了,在下一輪測試中還有可能發現新bug
(1)回歸測試時執行全部用例
(2)選擇重要功能點、常用功能點、與bug關聯的功能點進行測試
(3)選擇性執行關鍵功能點的測試用例
(4)僅測出現bug的功能點

(1)測試的版本號和測試環境要描述清楚
(2)bug概要:通過bug概要讓項目組其他成員知道這個bug單描述的是什麼問題
(3)bug具體描述:也就是bug的重現步驟,bug記錄的細節越詳細越好,包括出錯前後執行的操作步驟,涉及的具體數據等
(4)附上相應的截圖和日誌,特別是截圖能為bug提供有力的說明

把發現的這個bug操作步驟補充到測試用例中,以便下一次測試的時候能夠注意到這個問題

(1)檢查是否是因為bug描述不清楚,造成對bug的爭議,確保bug單清晰明確,描述清楚,並且有截圖或日誌。
(2)如果bug單寫清楚了。就要以心平氣和的心態和開發人員進行溝通,說明bug對產品的不良影響
(3)如果溝通後還是不願意修改的話,可以向測試經理反饋這一情況,由測試經理出面解決,或召開三方會議共同商討定奪。
(4)作為測試人員,一定要堅定自己的立場原則,以產品為出發點,不能經開發的解釋後就放棄自己的觀點,認為自己找到的不是bug了。

首先我會截圖並搜集日誌,保留好測試現場,沒有重現可能是因為沒有觸發到bug產生的點,我會想方設法讓這個bug重現,如果實在無法重現,會提交bug、截圖和日誌給開發人員。如果開發人員要求重現,就後續繼續觀察,觀察到了可以邀請開發來工位進行調試,確定問題;如果最終還是無法重現的話,就把問題反映給測試經理,由測試經理和開發人員進行評審和解決方法,雖然現在沒有重現,但不能保證在用戶那裡不會出現。

首先我覺得凡事影響用戶體驗的問題都是大問題,如果用戶體驗不好,會造成大量潛在用戶的流逝,對產品的後續發展是非常不利的;其次如果每個問題都因為修改成本高而不去修改的話,就無法提升產品的質量,我認為無論是什麼問題,都應該要求開發人員去修改,這是對產品負責,也是對用戶負責。

之前有用過tapd,也有聽說過禪道、TestLink,測試管理工具,主要用於降低產品、開發、測試溝通成本,可以根據公司的具體情況進行使用,應該都差不多,能夠很快上手

一個軟體版本一般要測三到五輪,每一輪測試的時間不能確定,受需求規模、測試人員、測試技術、軟體質量等多方面因素影響,要視具體的情況確定

(1)編寫目的
(2)模塊功能描述
(3)測試過程:測試時間、地點、人員、版本
(4)測試環境
(5)測試功能點的范圍
(6)測試執行結果
(7)風險評估
(8)測試結論
(9)附件

(1)按照測試計劃安排完成了所有測試工作
(2)測試用例全部完成,執行通過率達到標准
(3)每個測試人員手上的bug處於關閉狀態
(4)回歸測試全部執行完畢,沒有發現影響產品上線的bug,軟體產品達到了上線標准
(5)每個測試人員負責的測試報告已完成,並提交給了測試經理

需求評審,測試計劃的制定、測試用例的設計、用例評審、測試環境搭建、測試執行(提交BUG、回歸測試)、撰寫測試報告

對於功能測試人員,是在系統測試時介入的

首先測試工作是產品誕生過程中必不可少的環節,對產品質量有明顯的改善作用;其次測試能對開發工作起到一定的監督和推動作用,能夠加快軟體開發周期,加快軟體發布的進程

首先熟悉項目組成員,包括開發、測試、產品。其次我會從熟悉需求文檔開始,依次熟悉測試組的測試用例、bug管理工具以及bug庫中已提交的bug。最後我會想測試組的老同事或我的導師請教測試組的基本工作流程等細節問題,並結合測試經理分配的任務,通過這些任務熟悉整個測試流程和工作要點。

受測試時間、測試人員數量、測試人員技術等方面的因素影響,無法發現所有bug。有些bug是需要在特殊環境下長期使用才會發現的。一般情況下,在交付用戶後都不應該有影響用戶使用和體驗的bug出現,萬一在用戶使用過程中發現了bug,應該迅速打補丁或升級軟體。

Ⅷ 測試新人如何使用Python代碼封裝自動化測試的用例

使用Python代碼封裝自動化測試的用例, 意味著將代碼封裝到一個整體中, 在python中面向對象的編程思維方式是最適合封裝了: ①把測試的數據和測試的過程封裝到類的內部成為一個整體, 便於測試數據和測試流程的管理維護 ②Python中面向對象封裝的特性有利於隱藏內部實現的復雜度, 對於調用者來說直接調用即可
③Python面向對象中的類是實現封裝最佳體現, 把數據和對數據的操作封裝在類的內部,, 對數據起到保護作用, 提高了代碼的安全性和健壯性
④Python中面向對象的編程模式體現了模塊化的思想, 模塊可以重用, 模塊容易擴展, 簡化測試的流程, 提高測試的效率
更高效的編寫實現自動化測試用例,Python中面向對象編程思維方式是必須掌握的,親戚在傳智播客學的軟體測試,現在月薪13K。

閱讀全文

與python回歸自動化測試案例相關的資料

熱點內容
華為交換機dhcp配置命令 瀏覽:314
androidbitmap縮小 瀏覽:270
單片機串口控制燈 瀏覽:83
大訊雲伺服器安裝視頻 瀏覽:783
華為演算法領先世界 瀏覽:653
linux路由重啟 瀏覽:565
php的模板編程 瀏覽:319
編譯器原理與實現書 瀏覽:708
dos選擇命令 瀏覽:16
apm固件編譯到單片機 瀏覽:120
聯通深藍卡都包含什麼app 瀏覽:263
如何判斷網路伺服器正常 瀏覽:649
路由器搭橋遠端伺服器地址是什麼 瀏覽:516
編譯動態庫時會連接依賴庫嗎 瀏覽:708
淘寶手機加密是隨機的嗎 瀏覽:672
解壓包子怎麼裝飾 瀏覽:586
四個數湊24演算法 瀏覽:676
哪一種不是vi編譯器的模式 瀏覽:170
xp在此處打開命令窗口 瀏覽:128
代碼編譯運行用什麼軟體 瀏覽:999