<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>

            我們的測試為什么不夠敏捷?(2)

            發(fā)表于:2014-09-03來(lái)源:uml.org.cn作者:殷坤點(diǎn)擊數: 標簽:敏捷測試
            WebDriver規范定義一組與平臺、語(yǔ)言無(wú)關(guān)的接口,包括發(fā)現和操作頁(yè)面上的元素以及控制瀏覽器行為,主要用于支持Web應用的自動(dòng)化測試。 WebDriver的核心是

              WebDriver規范定義一組與平臺、語(yǔ)言無(wú)關(guān)的接口,包括發(fā)現和操作頁(yè)面上的元素以及控制瀏覽器行為,主要用于支持Web應用的自動(dòng)化測試。 WebDriver的核心是通過(guò)findElement方法返回DOM對象(WebElement),通過(guò)WebElement可以對DOM對象進(jìn)行操作(獲取屬性、觸發(fā)事件等)。其中findElement方法需要的元素定位器(Locator)支持ID、XPath、CSS、超鏈接文本等多種方式。

              “WebDriver”顧名思義就是“Web瀏覽器驅動(dòng)”,它專(zhuān)注于解決如何通過(guò)外部命令(通常為測試用例)操作瀏覽器的問(wèn)題。至于測試用例按照什么順序執行、執行過(guò)程中如何傳遞數據、測試結果如何斷言、如何報告,則可以通過(guò)集成其它優(yōu)秀的專(zhuān)業(yè)測試框架(比如,TestNG)來(lái)實(shí)現(WebDriver沒(méi)有必要重復造輪子)。

              下面用以“用戶(hù)管理”為例,來(lái)看看用WebDriver實(shí)現的“增加”和“刪除”測試腳本(只示意部分關(guān)鍵代碼)。

              1、在用戶(hù)列表頁(yè)面點(diǎn)擊“新增”按鈕,跳轉到新增用戶(hù)頁(yè)面:

              webDriver.findElement(By.xpath("//a[contains(@id,'addUserBtn')]//button")).click();.

              腳本解讀:

              By.xpath()表示通過(guò)XPath來(lái)定位頁(yè)面元素;

              click()表示在找到的當前控件上執行點(diǎn)擊操作;

              2、在新增用戶(hù)頁(yè)面,輸入“帳號”、“密碼”、“姓名”,選擇“性別”、“生日”和“國籍”,然后點(diǎn)擊“保存”按鈕,回到用戶(hù)列表頁(yè)面,并判斷是否增加成功:

              1) String account="autotest2";

              2) webDriver.findElement(By.xpath("//div[contains(@id,'account_userForm')]//input")).sendKeys(account);

              3) webDriver.findElement(By.xpath("//div[contains(@id,'password_userForm')]//input")).sendKeys("1");

              4) webDriver.findElement(By.xpath("//div[contains(@id,'name_userForm')]//input")).sendKeys(account);

              5) webDriver.findElement(By.xpath("//div[contains(@id,'sex_userForm')]//input")).click();

              6) webDriver.findElement(By.xpath("//span[text()='女']")).click();

              7) webDriver.findElement(By.xpath("//div[contains(@id,'birthdate_userForm')]//input")).click();

              8) webDriver.findElement(By.xpath("//div[contains(@id,'nationality_userForm')]//input")).click();

              9) webDriver.findElement(By.xpath("//span[text()='中國']")).click();

              10) webDriver.findElement(By.xpath("//a[contains(@id,'userSaveBtn')]//button")).click();

              11) WebElement ele = webDriver.findElement(By.xpath("//div[text()='"+account+"']"));

              12) Assert.assertNotNull(ele);

              腳本解讀:

              sendKeys ()表示在找到的當前控件上輸入字符;

              2~9行表示通過(guò)輸入或點(diǎn)擊選擇的方式為用戶(hù)相關(guān)屬性賦值;

              第10行表示點(diǎn)擊“保存”按鈕(點(diǎn)擊后會(huì )自動(dòng)轉向用戶(hù)列表頁(yè)面);

              11~12行表示查找頁(yè)面上文本內容為新增帳號的div,并斷言該div是存在的(不為空);

              3、刪除剛剛增加的人員,然后判斷是否刪除成功:

              1) webDriver.findElement(By.xpath("//a[contains(@id,'deleteUserBtn')]//button")).click();

              2) WebElement ele = webDriver.findElement(By.xpath("//div[text()='"+account+"']"));

              3) Assert.assertNull(ele);

              腳本解讀:

              第1行表示點(diǎn)擊“刪除”按鈕;

              2~3行表示查找頁(yè)面上文本內容為新增帳號的div,并斷言該div已經(jīng)不存在了(為空);

              通過(guò)上面的腳本就可以實(shí)現“用戶(hù)增加、刪除”的自動(dòng)化測試,并且可以跨瀏覽器??吹竭@里您會(huì )不會(huì )覺(jué)得整體還不錯,如果測試腳本再能通過(guò)錄制的方式自動(dòng)生成就更好了!

              “看”起來(lái)確實(shí)還不錯,但在實(shí)際項目中用起來(lái)就沒(méi)那么爽了。這其實(shí)是在技術(shù)/工具選型時(shí)普遍存在的現象:在驗證/試用階段的評價(jià)很高,但在投入生產(chǎn)使用時(shí)會(huì )遇到各種各樣的問(wèn)題,因此大家在選型階段除了考慮功能,還要考慮技術(shù)/工具本身的開(kāi)放性和可擴展性。

            原文轉自:http://www.uml.org.cn/Test/201301282.asp

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>