❶ 常用的自動化測試工具有哪些
1、Appium
AppUI自動化測試
Appium 是一個移動端自動化測試 開源工具,支持iOS 和android 平台,支持python、Java 等語言,即同一套Java 或Python 腳本可以同時運行在iOS 和Android平台,Appium 是一個C/S 架構,核心是一個 Web 伺服器,它提供了一套 REST 的介面。當收到客戶端的連接後,就會監聽到命令,然後在移動設備上執行這些命令,最後將執行結果放在 HTTP 響應中返還給客戶端。
2、Selenium
WebUI自動化測試
Selenium是一個用於Web應用程序測試的工具,Selenium已經成為Web自動化測試工程師的首選。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建回歸測試檢驗軟體功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。Selenium 是ThoughtWorks專門為Web應用程序編寫的一個驗收測試工具。其升級版本為Webdriver。
3、Postman
介面測試
Postman 提供功能強大的 Web API 和 HTTP 請求的調試,它能夠發送任何類型的HTTP 請求 (GET, POST, PUT, DELETE…),並且能附帶任何數量的參數和 Headers。不僅如此,它還提供測試數據和環境配置數據的導入導出,付費的 Post Cloud 用戶還能夠創建自己的 Team Library 用來團隊協作式的測試,並能夠將自己的測試收藏夾和用例數據分享給團隊。
4.Robot Framework
Robot Framework是一個開源自動化框架,它實現了用於驗收測試和驗收測試驅動開發(ATDD)的關鍵字驅動方法。 Robot Framework為不同的測試自動化需求提供框架。 但是,通過使用Python和Java實現其他測試庫,可以進一步擴展其測試功能。 Selenium WebDriver是Robot Framework中常用的外部庫。
測試工程師可以利用Robot Framework作為自動化框架,不僅可以進行Web測試,還可以用於Android和iOS測試自動化。 對於熟悉關鍵字驅動測試的測試人員,可以輕松學習Robot Framework。
5、Soapui
介面測試
SoapUI提供了所有所需的工具來測試和完善的測試。總覽標簽給你一個項目的所有內容和全面的看法。只需一次點擊,您可以添加任何數量的斷言為驗證傳入的消息TestStep。使用功能強大的HTTP監視器記錄,分析甚至修改客戶機 - 伺服器通信,因為它發生。和SoapUI臨帶來了更專業和先進的功能,保持遙遙領先其他測試工具。輕松創建和運行數據驅動測試。該數據源TestStep讀取測試數據從任何外部來源 - Excel中,XML,JDBC,文件,等等 - 到標准SoapUI屬性。
針對上面的自動化測試工具,每一個都有自己優勢的功能,隨著計算機行業的發展,自動化測試工具會越來越多,越來越完善。
❷ 軟體測試面試題:WEB+網路|介面測試|性能測試|自動化測試
1. http代碼表,常考題目
404:找不到資源
500:伺服器內部錯誤,無法完成請求。
501:伺服器不支持請求的功能,無法完成請求。
502:充當網關或代理的伺服器,從遠端伺服器接收到了一個無效的請求。
301:永久移動。請求的資源已被永久的移動到新URI,返回信息會包括新的URI,瀏覽器會自動定向到新URI,今後任何新的請求都應使用新的URI代替。
302:臨時移動。與301類似。但資源只是臨時被移動,客戶端應繼續使用原有URI。
200:成功。
2. TCP/IP四層網路模型
鏈路層、網路層、傳輸層、應用層。
3. TCP/UDP區別?
TCP: 可靠傳輸協議,需要三次握手連接,有確認重傳機制,特點是可靠、准確、有擁塞控制,缺點就是比較慢,傳輸量比較小,適用於升級、下載;一句話:TCP是可靠的傳輸。
UDP: 不可靠傳輸協議,面向非連接的協議,優點是傳輸量大、速度快,缺點是已丟失、沒有擁塞控制,適用於直播、視頻等。一句話:UDP是不可靠的傳輸。
4. html css js運行的先後順序是什麼?
界面載入的時候先載入html在載入css最後載入js
5. session和cookie的區別是什麼
1. session存放在伺服器端用來校驗客戶端的身份
2. cookie存放在客戶端,每次從客戶端往伺服器發請求時,將cookie帶到伺服器端,用來校驗客戶端的身份
1. 怎麼用JMeter測試介面?
如果使用JMeter進行介面測試:
1) 測試前了解需求,根據介面規格說明書梳理業務;
2) 接下來設計用例,分析介面的入參和出參,分清楚有哪些有效輸入和無效輸入,設計用例(原則:用最少的用例覆蓋所有有效輸入,針對每一個無效的輸入設計一個測試用例,如果有錯誤碼沒有覆蓋到,還要對每個未覆蓋的錯誤碼分別設計一個用例);
3) 准備測試數據,比如:測試所需的賬號、密碼、key 等信息;
4) 打開JMeter,創建一個線程組,根據介面類型,填寫好對應的介面地址和請求方式等;
5) 參數化配置,添加配置元件CSV Data Set Config,定義變數,並准備CSV格式的數據,變數的引用用${變數名}的格式;
6) 添加斷言來判斷測試結果的正確性,用得最多的是響應斷言;
7) 添加監聽器,比如查看結果樹,對測試結果進行監聽;
8) 運行測試用例;
9) 查看監聽器結果,來判斷用例的執行是成功還是失敗,針對失敗的用例,分析其失敗原因;
10) 針對測試中發現的問題,給開發提單,直到問題最終解決。
11) 最後輸出測試報告。
2. 怎麼用Postman測試介面?
如果使用Postman測試介面:
其中1,2,3點相同,工具使用方面則比JMeter跟簡單,工具的主要的步驟是添加對應的請求、填寫主機URL及入參、添加測試套、運行測試套、分析結果出報告。
3. 在JMeter上如何把上一個請求的結果作為下一個請求的參數?
使用正則表達式提取器提取上一個請求的響應中的信息,保存一個引用名稱比如abc,在下一個請求的參數中,用${abc}的格式來引用提取的結果。
常用的正則表達式格式:(.+?),其中.表示匹配任意字元串,+表示只匹配一次,?表示匹配到就停下來。
一般是我們功能測試完成最後兩三天時間測試性能。
1、先是分析需求計算出並發數,TPS,響應時間和 CPU,內存,硬碟和網路IO這些指標。
2、制定測試方案,主要包括環境,計劃和具體測試那些場景(如可靠性,並發,負載,壓力測試等)
3、根據場景用Badboy錄制腳本,導出為JMeter工具支持的腳本。
4、用JMeter工具打開腳本,進行腳本調試,加一些斷言,監聽器,參數化等。
5、接下來執行性能測試,然後主要收集監聽器和收集伺服器CPU,內存,硬碟和網路IO等分析是否滿足需求,如果滿足就輸出性能測試報告。
6、如果指標不能滿足,反饋給開發進行調優。調優後繼續測試,一直到滿足需求後最終輸出測試報告。
1. Python怎麼定義一個函數?
你可以定義一個由自己想要功能的函數,以下是簡單的規則:
1) 函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括弧()。
2) 任何傳入參數和自變數必須放在圓括弧中間。圓括弧之間可以用於定義參數。
3) 函數的第一行語句可以選擇性地使用文檔字元串—用於存放函數說明。
4) 函數內容以冒號起始,並且縮進
5) return[表達式]結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當於返回None
2 Python切片
3. Python上用過什麼庫/模塊?
webdriver:定位和操作元素
time:設置等待時間
ActionChains:動作鏈,完成滑鼠的相關操作
Keys:鍵盤的相關操作
WebDriverWait:設置顯式等待
Expect_Conditions:針對單個元素,設置顯式等待的場景
PIL:截圖
Select:下拉選擇框的操作
unittest python:自帶的單元測試框架
HTMLTestRunner:運行腳本,生成報告
ddt:實現數據驅動測試,行為和數據分離
4. 你做過自動化測試嗎?
我在上一份工作中,公司去年下半年也開始規劃做Web 自動化,採用Python作為開發語言,通過Selenium WebDriver定位和操作頁面元素,自動化框架用的是unittest。我主要負責寫測試腳本。
假設一個測試團隊有5個人:1資深(測試經理)+2~3個中級(自動化+手動)+1 個初級(手動)
5. 使用什麼工具進行的自動化測試
使用的工具是Selenium(Web自動化工具)
6. 用的什麼編程語言
用的Python
7. Selenium 用的是哪個版本的的?Python用的是哪個版本的?
用的是selenium 3.11.0和Python2.7.10
8. Selenium的工作原理?
1)對html元素定位
2)模擬對第一步定位到的元素進行點擊、輸入、選擇等操作一句話:定位元素,操作元素。
9. 元素定位方法有哪些?
要點:8種定位方法
1) 根據元素的屬性值定位,比如 id、name、class、標簽名、鏈接文字和部分鏈接文字;
2) 根據CSS選擇器定位;
3) 根據 XPath 定位;
10. 子頁面里的元素怎麼定位?
先切換到框架里,然後再定位,用switch_to_frame函數根據子頁面id或name,切換到子頁面;定位完了如果要再定位主頁面的元素,要用switch_to_default_content 函數先返回主頁面。
11. 怎麼定位alert彈窗?或者這樣問:怎麼處理JS原生窗口?
要點:主要涉及點擊彈窗確認按鈕、強行關閉彈窗、獲取彈窗中的文字等操作。
1) 點擊彈窗的確定按鈕,用如下函數:
driver.switch_to_alert().accept()
2) 強行關閉,點擊右上角的叉叉,用如下函數:
driver.switch_to_alert().dismiss()
3) 獲取彈窗里的文字,用如下函數:
driver.switch_to_alert().text
12. 怎麼運行自動化用例並生成測試報告?
以unittest為例,我通常的做法是把用例載入到測試套中,做成一個腳本,在命令窗口下運行腳本,報告的生成用第三方模塊HTML TestRunner來生成。
13. 怎麼定位/操作圖片中的驗證碼?
用tesseract OCR引擎處理圖片中的驗證碼,步驟:
(1)對整個屏幕截屏,保存成png格式的圖片;
(2)在截取的圖片中定位驗證碼圖片的位置坐標;
(3)根據坐標對驗證碼截圖;
(4)在圖片中提取驗證碼,輸入到輸入框。
❸ 2019最好用的自動化測試工具Top 10,果斷收藏
這個時候總是無奈的說:
你應該學習Python 或是Java
你應該掌握Selenium
又或者你需要學會jmeter,嗯,可能LoadRunner你應該學習
也許SoapUI是個不錯的選擇,或者你可是試試PostMan
......
其實這些都不是我真正的答案,我想說:只專注於一種編程語言或一種工具可能限制你的發揮,尤其可能限制了你在工作中提供的價值。如果你提供的價值在逐步退化,那麼你的舞台可能突然謝幕,你的職業停滯不前,受到限制。
所以,什麼最重要?當然是能力了!
下面我就介紹下2019最好用的10個自動化測試工具,希望可以充實你的知識庫,打開你的職業發展舞台!
在自動化測試領域,自動化工具的核心地位毋庸置疑。我總結了最頂尖的自動化測試工具,這些工具可以幫助組織更好地定位自己,跟上軟體測試的趨勢。這份清單包含了開源和商業的自動化測試解決方案。
Selenium:WebUI自動化測試
Selenium是網頁應用中最流行的開源自動化測試框架。起源於2000年,10多年來不斷地完善,Selenium成為許多Web自動化測試人員的選擇,尤其是那些有高級編程和腳本技能的人。Selenium也成為了其他開源自動化測試工具比如Katalon Studio,Watir,Protractor和Robot Framework的核心框架。
Selenium 支持多系統環境(Windows,Mac,Linux)以及多種瀏覽器(Chrome,FireFox,IE以及無頭瀏覽器(沒有界面))。它的腳本可以由各種各樣的編程語言編寫,比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。
因為Selenium的靈活性,測試人員可以寫各種復雜的、高級的測試腳本來應對各種復雜的問題,它需要高級的編程技能和付出來構建滿足自己需求的自動化測試框架和庫。
Appium:APP UI自動化測試
Appium是一個移動端自動化測試開源工具,支持iOS和Android平台,支持Python、Java等語言,即同一套Java或Python腳本可以同時運行在iOS和Android平台,Appium 是一個C/S架構,核心是一個Web伺服器,它提供了一套REST的介面。當收到客戶端的連接後,就會監聽到命令,然後在移動設備上執行這些命令,最後將執行結果放在HTTP響應中返還給客戶端。
Jmeter:介面測試,性能測試
JMeter是一個開源的Java桌面應用程序,主要用於web應用程序的負載測試。它還支持單元測試和有限的功能測試。
它有很多好的特性,比如動態報告、可移植性、強大的測試IDE等,並且支持不同類型的應用程序、協議、shell腳本、Java對象和資料庫。
Postman:介面測試
Postman 提供功能強大的Web API和HTTP請求的調試,它能夠發送任何類型的HTTP請求 (GET, POST, PUT, DELETE…),並且能附帶任何數量的參數和Headers。不僅如此,它還提供測試數據和環境配置數據的導入導出,付費的Post Cloud用戶還能夠創建自己的 Team Library用來團隊協作式的測試,並能夠將自己的測試收藏夾和用例數據分享給團隊。
SoapUI:介面測試
SoapUI是一個非常流行的用於SOAP和REST的開源API測試自動化框架。它還支持功能測試、性能測試、數據驅動測試和測試報告。
Monkey:穩定性測試
軟體附帶在sdk中,適用於android和ios,通過adb shell,生成用戶或系統的偽隨機事件。壓力測試結果:崩潰crash,無響應anr,基本命令:adb shell monkey 1000。
Robot Framework:Web UI自動化測試,介面測試
Robot Framework是一個開源自動化框架,它實現了用於驗收測試和驗收測試驅動開發(ATDD)的關鍵字驅動方法。Robot Framework為不同的測試自動化需求提供框架。但是,通過使用Python和Java實現其他測試庫,可以進一步擴展其測試功能。Selenium WebDriver是Robot Framework中常用的外部庫。
測試工程師可以利用Robot Framework作為自動化框架,不僅可以進行Web測試,還可以用於Android和iOS測試自動化。對於熟悉關鍵字驅動測試的測試人員,可以輕松學習Robot Framework。
QTP:Web UI自動化測試
QTP是一種自動測試工具。使用 QTP 的目的是想用它來執行重復的手動測試,主要是用於回歸測試和測試同一軟體的新版本。因此你在測試前要考慮好如何對應用程序進行測試,例如要測試那些功能、操作步驟、輸入數據和期望的輸出數據等。
QTP針對的是GUI應用程序,包括傳統的Windows應用程序,以及現在越來越流行的Web應用。它可以覆蓋絕大多數的軟體開發技術,簡單高效,並具備測試用例可重用的特點。其中包括:創建測試、插入檢查點、檢驗數據、增強測試、運行測試、分析結果和維護測試等方面。
LoadRunner:性能測試
LoadRunner,是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施並發負載及實時性能監測的方式來確認和查找問題,LoadRunner能夠對整個企業架構進行測試。
企業使用LoadRunner能最大限度地縮短測試時間,優化性能和加速應用系統的發布周期。LoadRunner可適用於各種體系架構的自動負載測試,能預測系統行為並評估系統性能。
Jenkins:持續集成
自動化構建編譯,部署,任務執行,測試報告,郵件通知等。
使用開源測試工具有很多好處,尤其是無直接的購買成本,而且可定製,但也有一定的局限性。尤其是缺乏專業的技術支持,有限的許可支持以及腳本維護有時會成為一個挑戰性的工作。
為了選擇正確的自動化測試工具,你應該確保該工具是處於活躍維護狀態的,並且與你所在企業業務、團隊、技能匹配,並且是團隊里有相應的專家。
因此在選擇工具之前,你必須仔細研究,以便該工具能夠滿足你的測需求,並且能幫助你更好的執行測試。