Web自動化框架LazyUI使用手冊(8)--excel數據驅動詳解(ExcelDataProvider)

概述

框架提供了excel數據驅動方式運行測試用例的工具,本文將針對數據驅動,進行詳細演示。

詳見類:lazy.test.ui.browser.ExcelDataProvider

 

被測對象:

http://bj.sqyishi.com/user/login.htm

 

測試場景:

輸入用戶名,點擊登錄,校驗各種異常輸入

輸入後,紅框裏會出現一些異常提示,如圖:

image

 

bean層代碼:

使用插件生成

package test;
import lazy.test.ui.annotations.*;
import lazy.test.ui.beans.PageBean;
import lazy.test.ui.controls.*;
import lazy.test.ui.browser.BrowserEmulator;
public class login extends PageBean {
    @Xpath(xpath={"//input[@id='username']", "//input[@name='username']", "//input[contains(@class,'text highlight1')]"})
    @Frame(frame="")
    @Description(description="username")
    public Text username;
    @Xpath(xpath={"//button[@id='pwdLoginSubmit']", "/html/body/form/div/div[3]/div/div[8]/button"})
    @Frame(frame="")
    @Description(description="pwdLoginSubmit")
    public Click pwdLoginSubmit;
    public login(BrowserEmulator be) { super(be); }
}


 

page層代碼

import lazy.test.ui.browser.BrowserEmulator;
public class LoginRegisterBean {
private BrowserEmulator be;
Login loginBean = new Login(be);
//打開登陸頁
public void openLoginURL(){
   be.open("http://bj.sqyishi.com/user/login.htm");
}
//校驗是否存在文字
public void expectTextCheck(String expectText){
   be.expectTextExistOrNot(true, expectText, 3500);
}
//手機號輸入校驗
public void userNameCheck(String telephone, String expectText){
   openLoginURL();
   loginBean.username.input(userName);
   loginBean.pwdLoginSubmit.click();
   expectTextCheck(expectText);
}
}


 

數據驅動文件

image

 

1. Excel放在Data文件夾下,即根目錄的/data/下面

2. Excel命名方式:測試類名.xls,如圖中①

3. Excel的sheet命名方式:測試方法名,如圖中②

4. Excel第一行爲Map鍵值,如圖中第一行

5. 最後一樣必須以“#”號結尾,表示終止,如圖中③

6. 可以使用第一列控制其是否運行,如圖中④,第六行,不運行

 

Test層代碼

package com.ebl.UIAutomation.test.loginRegister;

import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.Map;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import lazy.test.ui.browser.ExcelDataProvider;

public class LoginRegisterParamTest extends loginBaseTest{

   //使用驅動數據運行測試用例
   @Test(dataProvider = "dp" )
   public void UsernameCheck(Map<String,String> data) {
      if(data.get("isRun").equals("1")){//使用第一列控制其是否運行
         loginPage.userNameCheck(data.get("telephone"), data.get("expectText"));
      }
   }
   //根據類名、方法名,加載驅動數據
    @DataProvider(name = "dp")
    public Iterator<Object[]> dataFortestMethod(Method method) throws IOException {
       return new ExcelDataProvider(this.getClass().getName(),method.getName());
    }
}


 

運行

使用testng運行test:UsernameCheck

便會啓動瀏覽器

打開登錄頁面

一行爲一個case,按excel中順序,向用戶名框中填入telephone列的值,

點擊登錄,

校驗頁面上是否出現了expectText列的文字。

wx1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章