精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

自動化功能性測試的分步指南

譯文 精選
開發 測試
本文將和您探討如何基于Web應用,設計出功能性測試用例,并使用典型的測試工具對其自動化。

譯者 | 陳峻

審校 | 孫淑娟

眾所周知,無論是桌面應用、Web應用、還是移動應用,在投放到市場之前,都需要經過嚴格的測試。而由于功能性測試能夠檢驗應用程序的各項操作與功能,是否符合既定的需求規范,因此它往往被認為是在整個測試生命周期中,最關鍵且成本最高的一項活動。對此,自動化的功能性測試則能夠在提升軟件質量的同時,降低有效的成本。下面,我將和您一起探討如何基于Web應用,設計出功能性測試用例,并使用典型的測試工具對其自動化。

功能性測試的流程與分類

在功能性測試中,測試人員會根據所有的功能需求規范,驗證被測軟件是否符合要求,是否能夠按照預期工作,及時發現它與規范之間的“差異”。簡單而言,這是一種黑盒技術,測試人員并不知道軟件的內部邏輯與細節(如圖1),只需讓測試用例遵從規范開展即可。通常,功能性測試的流程包括:

1.向被測系統提供測試性輸入

2.從被測系統獲取結果輸出

3.驗證實際輸出是否符合規范所預期的輸出

圖1-功能性黑盒測試

從測試類型上分,功能性測試包括如下幾種(如圖2):

  • 單元
  • 冒用
  • 健全測試(Sanity)
  • 集成
  • 系統
  • 回歸測試
  • 其他更多

圖2-功能性測試類型

在此,我將重點介紹用于測試應用功能的集成性系統測試。

自動化功能性測試

從測試伊始,我們就知道可以采取手動與自動兩種不同的執行方式。其中,手動測試是指測試人員需要直接與應用程序進行交互;而自動化測試是指測試人員使用諸如Maveryx之類的自動化工具,通過編程的方式、或基于腳本來自動實現,以及在無代碼的自動化(例如,關鍵字驅動方法)環境中實現。

注意,此處的基于腳本的測試是指用Java、C#和Python等編程語言來編寫測試腳本。當然,這對測試人員的編程水平要求較高。而無代碼測試則是構建在諸如:從下拉菜單中選擇,或者通過拖放測試組件等方式之上。因此,它對于測試人員的編程水平要求不高。

一個測試用例

許多Web應用都離不開用戶登錄這一基本功能。下面,我將在https://opensource-demo.orangehrmlive.com/上,擬定如下功能規范:

  • 用戶可以根據登錄頁面上的提示,使用用戶名和密碼憑證(如圖3)登錄并訪問OrangeHRM演示系統。

圖3-OrangeHRM演示網站

  • 當用戶輸入有效的用戶名和密碼,并單擊登錄按鈕時,用戶可以看到應用的儀表板界面(如圖4)。

圖4-儀表板網頁

  • 當用戶輸入無效的名稱和/或密碼,并單擊登錄按鈕時,系統會顯示一條錯誤消息:“無效憑據”(如圖5)。

圖5-無效憑據錯誤

  • 如果用戶名或密碼為空,單擊登錄按鈕,系統將顯示錯誤消息:“用戶名不能為空”或“密碼不能為空”(如圖6)。

圖6-用戶名和密碼為空的錯誤

由上述規范可知,我們需要設計針對如下方面的功能性測試用例:

測試用例名稱

測試用例的描述

預期輸出

TC_001號


輸入有效的用戶名和有效的密碼,然后單擊登錄按鈕。


用戶登錄到應用程序,并訪問位于??https://opensource-demo.orangehrmlive.com/index.php/dashboard?? 的儀表板頁面

TC_002號


輸入無效用戶名和有效的密碼,然后單擊登錄按鈕。


錯誤:“無效憑據。”

用戶仍在登錄頁面??https://opensource-demo.orangehrmlive.com/index.php/auth/validateCredentials?

TC_003號


輸入有效的用戶名和無效密碼,然后單擊登錄按鈕。


錯誤:“無效憑據。”

用戶仍在登錄頁面??https://opensource-demo.orangehrmlive.com/index.php/auth/validateCredentials?


TC_004號

輸入無效用戶名和無效密碼,然后單擊登錄按鈕。


錯誤:“無效憑據。”

用戶仍在登錄頁面??https://opensource-demo.orangehrmlive.com/index.php/auth/validateCredentials?

TC_005號


留下空白的用戶名和空白的密碼,然后單擊登錄按鈕。


錯誤:“用戶名不能為空。”

用戶仍在登錄頁面??https://opensource-demo.orangehrmlive.com/?

TC_006號


留下空白的用戶名并輸入有效的密碼,然后單擊登錄按鈕。


錯誤:“用戶名不能為空。”

用戶仍在登錄頁面上??https://opensource-demo.orangehrmlive.com/??

TC_007號


輸入有效的用戶名并留下空白的密碼,然后單擊登錄按鈕。


錯誤:“密碼不能為空。”

用戶仍在登錄頁面https://opensource-demo.orangehrmlive.com/ 

讓我們采取如下步驟來測試第一個測試用例(TC_001):

測試步驟(/輸入)

預期輸出

啟動瀏覽器


導航到OrangeHRM演示網站:??https://opensource-demo.orangehrmlive.com/??

OrangeHRM演示網站將通過URL-- ??https://opensource-demo.orangehrmlive.com/?? 被打開


輸入有效用戶名?“Admin”

用戶名字段被填如“Admin”

輸入有效密碼?“ admin123”

密碼字段已填充

單擊登錄按鈕

儀表板頁面通過??https://opensource-demo.orangehrmlive.com/index.php/dashboard??被顯示

自動化功能性測試腳本

我將使用??Maveryx???和??Java??來自動化其功能性測試。其中,Maveryx是一種自動化的功能和回歸測試工具。它提供了功能、回歸、用戶界面、無代碼、以及數據驅動測試等自動化測試功能。它能夠支持包括基于Web、.Net、Java等一系列應用。下面我將通過代碼的形式,逐步展示編寫TC_001測試用例的腳本:

1.啟動瀏覽器。

Java
//launch Chrome browser
Bootstrap.startApplication(chrome);

//new browser instance
GuiBrowser browser = new GuiBrowser();

2.通過URL--https://opensource-demo.orangehrmlive.com/導航到OrangeHRM演示網站。

Java
//OrangeHRM demo Website page URL
String pageURL = "https://opensource-demo.orangehrmlive.com/";

//navigate to the OrangeHRM demo Website
browser.navigateTo(pageURL);

//check the landing page URL
assertEquals(pageURL, browser.getCurrentPageUrl());

在此,我建議您使用斷言,來驗證預期的結果(如圖7)。如果實際結果與斷言的預期結果相匹配,則該測試用例算作通過,否則算作失敗。

圖7-JUnit斷言列表

3.在用戶名字段處輸入合法的數值“Admin”。

Java
//the username
String username = "Admin";

//the Username text field
GuiText usrName = new GuiText("Username");
//set the username
usrName.setText(username);

//check that the username has been correctly inserted
assertEquals(username, usrName.getText());

不同于??Selenium??,Maveryx并不使用包括XPath的“定位器”,來識別它與測試腳本通過交互而復制過來用戶的操作元素。用戶可以直接使用Maveryx,來描述待測試的UI元素,就像它們出現在應用程序中一樣。在本例中,我使用“username”作為用戶名文本字段的占位符,來識別對象(如圖8)。

測試對象通常可以在運行時中被直接識別,而無需使用任何預先錄制(pre-recorded)的UI映射,或測試對象與鏡像存儲庫。

圖8-用戶名文本字段

4.輸入有效的Password=“admin123”來填充密碼字段。

Java
//the password
String pwd = "admin123";

//the Passoword text field
GuiPasswordText password = new GuiPasswordText("Password");
//set the password
password.setText(pwd);

//check that the password has been correctly inserted
assertEquals(pwd, password.getText());

密碼的文本字段由其占位符“password”來標識(如圖9)。

圖9-密碼文本字段

5.單擊登錄按鈕,應用將加載儀表板頁面https://opensource-demo.orangehrmlive.com/index.php/dashboard,如圖10。

Java
//click The Login button
new GuiButton("LOGIN").click();

//check that the header "Dashboard" is present (fig.10)
new GuiHtmlElement("Dashboard", AccessibleRoleMaveryx.WEB_H1).waitForObject(5, 1);

//the Dashboard page URL
String dashboardURL = "https://opensource-demo.orangehrmlive.com/index.php/dashboard";
//check the Dashboard page URL
assertEquals(dashboardURL, new GuiBrowser().getCurrentPageUrl());

圖10-“儀表板”的標題

根據上述邏輯,我們便可以開始執行測試腳本了。Maveryx將啟動Chrome瀏覽器,并在執行代碼時,打開OrangeHRM的登錄頁面。然后,它將使用相關憑據進行登錄,并通過斷言檢查的方式,比較預期和實際結果。

同理,測試用例2(TC_002)將會生成如下Maveryx測試腳本:

Java
//invalid username
String username = "Admi";

//the Username text field
GuiText usrName = new GuiText("Username");

//set the invalid username
usrName.setText(username);

//check that the username has been correctly inserted
assertEquals(username, usrName.getText());

//the password (valid)
String pwd = "admin123";

//the Passoword text field
GuiPasswordText password = new GuiPasswordText("Password");
//set the password
password.setText(pwd);

//check that the password has been correctly inserted
assertEquals(pwd, password.getText());

//click The Login button
new GuiButton("LOGIN").click();

//check that the message "Invalid credentials" is present (fig.5)
new GuiHtmlElement("Invalid credentials").waitForObject(5, 1);

按照這樣的思路和方法,我們還可以編寫出適用于不同場景的測試用例。

結論

如前文所示,功能性測試是最容易發現軟件缺陷的一種測試類型,也是最考驗我們編寫測試用例的能力與邏輯的環節。希望上面探討的各個功能性測試案例,能夠協助您從現有的規范中,創建出能夠符合實際要求的自動化功能性測試用例。 

譯者介紹

陳峻 (Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗;持續以博文、專題和譯文等形式,分享前沿技術與新知;經常以線上、線下等方式,開展信息安全類培訓與授課。

原文標題:??Automated Functional Testing: A Step-by-Step Guide??,作者:Gabriele Piantadosi

責任編輯:華軒 來源: 51CTO
相關推薦

2021-12-29 21:15:08

軟件測試軟件開發

2010-08-10 14:18:15

RationalFunFlex

2011-04-18 12:52:37

自動化測試功能測試軟件測試

2012-02-27 17:34:12

Facebook自動化

2018-12-12 08:15:13

物聯網設備物聯網IOT

2024-09-25 08:46:31

2023-05-08 15:59:27

UI自動化腳本鴻蒙

2022-02-17 10:37:16

自動化開發團隊預測

2021-02-04 09:00:00

跨瀏覽器移動測試工具

2009-07-06 10:08:03

Flex自動化

2023-03-27 15:37:43

自動化測試開發

2022-06-08 14:22:55

自動化測試測試

2022-05-10 11:18:42

自動化測試軟件測試

2015-03-19 09:35:36

OpenStack平臺性能測試Rally功能測試Tempest

2022-11-23 15:57:40

測試開發Java

2009-08-12 18:37:46

VSTS2005單元測

2021-09-03 09:56:18

鴻蒙HarmonyOS應用

2013-05-16 10:58:44

Android開發自動化測試

2010-08-10 14:34:37

QTPFlex

2010-08-10 14:25:42

SilkTestFlex
點贊
收藏

51CTO技術棧公眾號

日本一区二区动态图| 亚洲永久字幕| 欧美变态凌虐bdsm| 又大又硬又爽免费视频| 日本又骚又刺激的视频在线观看| 久久精品系列| 久久久99久久精品女同性| 特种兵之深入敌后| 男人最爱成人网| 一区在线中文字幕| 精品无码久久久久国产| 中文字幕视频一区二区| 欧美日本不卡| 在线观看不卡av| 亚洲视频 中文字幕| 亚洲精品国产嫩草在线观看| 亚洲精选在线视频| 欧美亚洲精品日韩| www.国产黄色| 蜜臀va亚洲va欧美va天堂| 欧美高清自拍一区| 99国产精品免费| 成人精品毛片| 69久久99精品久久久久婷婷 | 亚洲www视频| 国产成人精品777777| 午夜久久99| 色偷偷88888欧美精品久久久| 成人午夜精品无码区| 亚洲精品aa| 在线免费观看成人短视频| 国产xxxx振车| 欧美激情黑人| 国产亚洲欧美色| 国产视频精品网| va视频在线观看| 麻豆精品一区二区三区| 欧美专区在线播放| 久久久久久久99| 亚洲成人国产| 日韩在线视频观看正片免费网站| 精品人妻一区二区三区视频| 亚洲日本va午夜在线电影| 欧美日韩一级二级| 热久久精品免费视频| 国内激情视频在线观看| 亚洲成人在线免费| 日本一区午夜艳熟免费| 特级毛片在线| 一区二区三区久久久| 热这里只有精品| 欧美jizzhd欧美| 国产精品水嫩水嫩| 手机成人在线| 成人欧美亚洲| 国产色91在线| 亚洲国产一区二区精品视频 | 最近2019年好看中文字幕视频| 第四色在线视频| 成人午夜网址| 亚洲国产精品成人一区二区| 极品白嫩的小少妇| 久久九九热re6这里有精品 | 欧美色另类天堂2015| 亚洲熟妇无码另类久久久| 欧美巨大丰满猛性社交| 天天亚洲美女在线视频| 波多野结衣之无限发射| 26uuu亚洲电影| 在线精品视频小说1| 奇米影音第四色| 精品一区二区三区中文字幕在线| 欧美一区二区视频网站| 久久精品aⅴ无码中文字字幕重口| 日本高清久久| 亚洲国产欧美在线成人app| 精品夜夜澡人妻无码av| 国产亚洲电影| 精品国偷自产在线视频99| 久久国产波多野结衣| 欧美a级片网站| 91黄色8090| 国产天堂第一区| 国内成人精品2018免费看| 国产成人免费观看| 久蕉依人在线视频| 国产精品卡一卡二| 日本免费a视频| 中文字幕在线中文字幕在线中三区| 91久久精品一区二区| 在线视频观看91| 99久久免费精品国产72精品九九| 日韩激情第一页| 午夜国产小视频| 99在线精品免费视频九九视 | 97精品久久久久中文字幕| 日本在线观看不卡| 国产激情在线观看| 精品国产91久久久| 亚欧精品在线视频| 九色精品国产蝌蚪| 欧美精品日韩www.p站| 亚洲天堂一区在线观看| 黄一区二区三区| 久久国产精品 国产精品| 日p在线观看| 欧美日韩国产在线| 亚洲一级片免费观看| 夜夜春成人影院| 欧美精品中文字幕一区| 亚洲av无码精品一区二区| 国产精品一区二区在线播放| 欧美久久电影| 大黄网站在线观看| 91.com在线观看| 国产人妻大战黑人20p| 欧美区日韩区| 成人免费高清完整版在线观看| 天堂网av在线播放| 亚洲男人都懂的| 精品国产成人av在线免| 永久免费精品视频| 精品国产一区二区三区在线观看 | 日韩福利在线视频| 亚洲国产裸拍裸体视频在线观看乱了中文 | 黄色av电影在线观看| 欧美午夜激情小视频| 天堂va欧美va亚洲va老司机| 第一会所亚洲原创| 亲爱的老师9免费观看全集电视剧| 亚洲AV无码乱码国产精品牛牛| 日本一区二区成人| 国产精品久久久久9999小说| 久久久久影视| 欧美日韩成人免费观看| 精品入口麻豆88视频| 亚洲人成绝费网站色www| www.99re7.com| 国产一区二区三区不卡在线观看| 日本欧美精品久久久| 免费在线小视频| 亚洲第一中文字幕| 国产亚洲成人av| 国产精品一区二区x88av| 在线观看福利一区| 全球中文成人在线| 丝袜情趣国产精品| 国产精品午夜一区二区| 国产欧美日韩三区| 香港日本韩国三级网站| 欧美综合在线视频观看| 国产精国产精品| 国产资源在线播放| 91国产免费观看| xxxx日本免费| 日本人妖一区二区| 亚洲春色综合另类校园电影| 成人免费av电影| 中文字幕亚洲一区在线观看 | 欧美精品97| aa成人免费视频| 日本无删减在线| 精品久久久久久久久久久久包黑料| 亚洲欧美一区二区三区四区五区| 国产黑丝在线一区二区三区| 黄色三级中文字幕| 激情小说一区| 日韩av免费在线看| caoporn国产精品免费视频| 欧美色窝79yyyycom| 青青草华人在线视频| 国产最新精品免费| 国产精品久久久久9999爆乳| 欧美人与动xxxxz0oz| 日韩av电影手机在线观看| 国产高清自拍视频在线观看| 欧美日韩大陆一区二区| 九九热国产精品视频| 99国产精品久| www亚洲成人| 欧美激情四色| 激情伦成人综合小说| 国模套图日韩精品一区二区| 伊人久久精品视频| 国产不卡av在线播放| 精品日韩美女的视频高清| japanese中文字幕| 国产毛片精品一区| 国产三区在线视频| 香蕉视频国产精品 | 亚洲经典一区二区| 色综合天天综合给合国产| chinese全程对白| 成人污污视频在线观看| 日本999视频| 欧美日韩蜜桃| 先锋影音日韩| 国产精品色呦| 国产在线观看精品| 黄在线观看免费网站ktv| 日韩在线观看免费高清完整版| 人妻一区二区三区四区| 欧美揉bbbbb揉bbbbb| 国产午夜久久久| 中文字幕在线不卡一区二区三区| a天堂视频在线观看| 久久99精品国产麻豆婷婷| 国产va亚洲va在线va| 精品日韩毛片| 国产精品乱码一区二区三区| 福利视频亚洲| 欧美自拍视频在线观看| av在线影院| 亚洲一级片在线看| 污污视频在线免费看| 欧美一区二区三区成人| 免费av中文字幕| 午夜精品久久久久久久久| 97在线观看免费高| 国产日韩精品一区二区三区在线| 波多野结衣办公室双飞 | 国产日韩专区在线| 天堂中文最新版在线中文| 九九热精品视频| 欧美精品日韩少妇| 中文字幕欧美日韩在线| 飘雪影院手机免费高清版在线观看 | 精品一区91| 国产男人精品视频| 怡红院成人在线| 欧美一级视频在线观看| 久操av在线| 久久成人综合视频| 国产福利片在线| 亚洲精品日韩在线| 亚洲色图另类小说| 亚洲国产成人精品久久| 高清毛片aaaaaaaaa片| 91精品国产高清一区二区三区蜜臀| 欧美超碰在线观看| 91国在线观看| 国产情侣免费视频| 欧美主播一区二区三区| 自拍偷拍18p| 欧美中文字幕亚洲一区二区va在线 | 亚洲国产一成人久久精品| 一区二区三区的久久的视频| 日韩国产一区二区| 在线观看成人一级片| 91精品啪在线观看国产81旧版 | 欧美日韩一卡| 欧美交换配乱吟粗大25p| 这里只有精品在线| av一区二区三区免费观看| 国产精品第十页| 国产日韩欧美精品在线观看| 亚洲狠狠婷婷| 岳毛多又紧做起爽| 日日夜夜一区二区| 日本不卡一区二区在线观看| 国内欧美视频一区二区| 中文字幕55页| 成人手机电影网| 亚洲调教欧美在线| 国产亚洲短视频| 国精产品一区一区| 亚洲麻豆国产自偷在线| 久久亚洲国产成人精品性色| 亚州成人在线电影| 天堂а√在线中文在线新版 | 欧美激情精品久久久久久黑人| 欧美高清另类hdvideosexjaⅴ| 久久久久久久国产| 中文字幕高清在线播放| 国产精品免费久久久久久| 成人在线分类| 国产日韩亚洲精品| 成人vr资源| 国产精品自拍合集| 丝袜诱惑制服诱惑色一区在线观看| 另类小说第一页| 国产福利一区在线| 玖玖爱在线观看| 国产精品色哟哟网站| 久久在线视频精品| 日本韩国精品在线| 午夜免费福利视频| 亚洲毛片在线免费观看| 欧美尤物美女在线| 91高清视频免费| 亚洲精品无播放器在线播放| 国产三区二区一区久久| 久久中文字幕二区| 成人一对一视频| 麻豆91精品91久久久的内涵| 亚洲天堂av网站| 国产精品美女久久久久久久久久久 | 噜噜噜久久,亚洲精品国产品| 国产视频精品va久久久久久| 日本中文字幕在线看| 8x海外华人永久免费日韩内陆视频| 丰满少妇一区| 精品一区二区国产| 亚洲成人精选| 青青在线免费观看视频| 国产成人av自拍| 欧美巨胸大乳hitomi| 亚洲国产欧美在线| 国产精品爽爽久久| 亚洲图片在区色| 91www在线| 亚洲一区二区三区视频播放| 国产欧美高清视频在线| 免费拍拍拍网站| 美腿丝袜亚洲一区| 欧美 日本 国产| 亚洲一区二区三区国产| 国产精品国产av| 亚洲天堂av综合网| 热色播在线视频| 福利视频久久| 亚洲最大黄网| 国产三级生活片| 国产视频一区二区在线| 91看片在线播放| 精品精品欲导航| aaa大片在线观看| 国产专区精品视频| 成人动漫免费在线观看| 日本一极黄色片| 久久婷婷综合激情| 日本免费一二三区| 亚洲成人激情在线| 福利在线导航136| www.久久久| 欧美日韩网站| zjzjzjzjzj亚洲女人| 一区二区在线观看免费视频播放| 91精品国产综合久| 日韩视频免费在线| 在线观看欧美| 特级黄色录像片| 韩日欧美一区二区三区| 一级片一级片一级片| 在线播放中文一区| 国产精品剧情一区二区在线观看| 国产精自产拍久久久久久| 成人在线国产| xxww在线观看| 日韩码欧中文字| 国产老妇伦国产熟女老妇视频| 日韩在线欧美在线国产在线| 激情小说亚洲| 中文字幕在线中文字幕日亚韩一区| 老司机精品视频导航| 久久人妻无码aⅴ毛片a片app | 亚洲黄色片视频| 高清一区二区三区日本久| 国产乱人伦丫前精品视频| 激情伊人五月天| 久久久99免费| 中文字幕有码视频| 久久亚洲精品成人| 9999久久久久| 激情六月丁香婷婷| 欧美激情一区二区在线| 夜夜嗨av禁果av粉嫩avhd| 日韩三级成人av网| 国产福利一区二区精品秒拍| 免费在线观看亚洲视频| 国产视频一区二区在线| 国产美女无遮挡永久免费| 欧美福利视频在线| 制服丝袜日韩| 婷婷激情5月天| 亚洲国产一区二区视频| 麻豆国产在线播放| 国产日本欧美在线观看| 亚洲高清不卡| 色无极影院亚洲| 91精品国产91久久久久久最新毛片 | 一区在线播放视频| 亚洲国产福利视频| 欧美自拍视频在线观看| 国产精品97| 亚洲精品中文字幕在线播放| 欧美日韩免费视频| 国产嫩草在线视频| 五月天丁香综合久久国产| 国产999精品久久| 日本黄色中文字幕| 精品中文字幕在线2019| 欧美日韩播放| 99riav国产精品视频| 欧美亚洲国产一区二区三区| 日本动漫同人动漫在线观看| 日本在线一区| 成人视屏免费看| 国产内射老熟女aaaa∵| 欧美综合在线第二页|