• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 敏捷自動化測試(1) —— 我們的測試為什么不夠敏捷?(2)

    發表于:2016-04-25來源:infoq作者:殷坤點擊數: 標簽:自動化測試
    WebDriver規范定義一組與平臺、語言無關的接口,包括發現和操作頁面上的元素以及控制瀏覽器行為,主要用于支持Web應用的自動化測試。 WebDriver的核心是

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

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

      下面用以“用戶管理”為例,來看看用WebDriver實現的“增加”和“刪除”測試腳本(只示意部分關鍵代碼)。

      1、在用戶列表頁面點擊“新增”按鈕,跳轉到新增用戶頁面:

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

      腳本解讀:

      By.xpath()表示通過XPath來定位頁面元素;

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

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

      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行表示通過輸入或點擊選擇的方式為用戶相關屬性賦值;

      第10行表示點擊“保存”按鈕(點擊后會自動轉向用戶列表頁面);

      11~12行表示查找頁面上文本內容為新增帳號的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行表示點擊“刪除”按鈕;

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

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

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

    原文轉自:http://www.infoq.com/cn/articles/test-no-agile-enough

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>