JavaApp自动化测试系列[v1.0.0][Appium数据驱动测试框架之公共类库]

为了让代码更加简洁,减少重复代码的编写,必须将重复性的代码提取出来,建立自动化测试框架的公共类库

在此之前,请确保已经熟练掌握了PO模式和PF模式以及数据驱动框架,请参考JavaApp自动化测试系列[v1.0.0][Appium数据驱动测试框架]

公共类方法

package com.davieyang.base;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;

public class BaseActivity {
    AndroidDriver<AndroidElement> driver;

    @BeforeClass
    public void setUP() throws Exception{
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability("deviceName", "Remi 3");
        cap.setCapability("udid", "claeae297d72");
        cap.setCapability("platformVersion", "5.1.1");
        cap.setCapability("platformName", "Android");
        cap.setCapability("appPackage", "io.selendroid.testapp");
        cap.setCapability("appActivity", ".HomeScreenActivity");
        cap.setCapability("unicodeKeyboard", "True");
        cap.setCapability("noSign", "True");
        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    }

    @AfterClass
    public void endTest(){
        driver.quit();
    }

    public AndroidDriver<AndroidElement> getDriver(){
        return driver;
    }
}

测试方法

package com.davieyang.testscripts;
package com.davieyang.testscripts;
import com.davieyang.util.DataProviderFromCsv;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import com.davieyang.pages.HomePage_PF;
import com.davieyang.pages.RegisterPage_PF;
import com.davieyang.pages.RegisterVerifyPage_PF;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.davieyang.base.BaseActivity;
import com.davieyang.util.Constants;
public class TestRegisterIII extends BaseActivity{

    AndroidDriver<AndroidElement> driver;
    @DataProvider(name="RegisterData", parallel = true)
    public static Object[][] getRegisterData() throws Exception{
        return DataProviderFromCsv.getTestData(Constants.注册页面I.filepath+ "/" +Constants.注册页面I.filename);
    }





    @Test(dataProvider = "RegisterData")
    public void test_Register_success(String no, String testName, String username, String eMail, String password, String name,
                                      String prolanguage, String accept, String verifyusername, String verifyeMail, String verifypassword,
                                      String verifyname, String verifyprolanguage, String verifyaccept) throws IllegalArgumentException, Exception{


        HomePage_PF homePage_pf = null;
        RegisterPage_PF registerPage_pf = null;
        RegisterVerifyPage_PF registerVerifyPage_pf = null;
        try{
            homePage_pf = new HomePage_PF(getDriver());
            registerPage_pf = homePage_pf.navigate_register_page();
            registerVerifyPage_pf = registerPage_pf.register_sucess(username, eMail, password, name, prolanguage, accept);
        }catch (AssertionError error){
            Assert.fail("调用注册成功方法失败");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_name_value(), name);
        }catch (AssertionError nameerror){
            Assert.fail("name断言失败,查看name值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_username_value(), username);
        }catch (AssertionError usernameerror){
            Assert.fail("username断言失败,查看username值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_password_value(), password);
        }catch (AssertionError passworderror){
            Assert.fail("password断言失败,查看password值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_preferedProgrammingLanguage_value(), prolanguage);
        }catch (AssertionError prolanguageerror){
            Assert.fail("prolanguage断言失败,查看prolanguage值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_email_value(), eMail);
        }catch (AssertionError eMailerror){
            Assert.fail("eMail断言失败,查看eMail值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_acceptAdds_value(), accept);
        }catch (AssertionError accepterror){
            Assert.fail("accept断言失败,查看accept值是否正确");
        }
    }
}

测试方法对比

package com.davieyang.testscripts;
import com.davieyang.util.DataProviderFromCsv;
import io.appium.java_client.android.AndroidDriver;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import io.appium.java_client.android.AndroidElement;
import com.davieyang.pages.HomePage_PF;
import com.davieyang.pages.RegisterPage_PF;
import com.davieyang.pages.RegisterVerifyPage_PF;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.davieyang.util.Constants;
public class TestRegisterII
{
    AndroidDriver<AndroidElement> driver;

    @BeforeMethod
    public void setUp() throws Exception{
        DesiredCapabilities capabilities = new DesiredCapabilities();
        // File appDir = new File("E:\\");
        // File app = new File(appDir, "selendroid-test-app-0.17.0.apk");
        capabilities.setCapability("deviceName", "Redmi 3");
        capabilities.setCapability("udid", "claeae297d72");
        capabilities.setCapability("platformVersion", "5.1.1");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("app", "app.getAbsolutePath()");
        // capabilities.setCapability("automationName", AutomationName.APPIUM);
        capabilities.setCapability("appPackage", "io.selendroid.testapp");
        capabilities.setCapability("appActivity", ".HomeScreenActivity");
        capabilities.setCapability("unicodeKeyboard", "True");
        capabilities.setCapability("noSign", "True");
        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

    @DataProvider(name="RegisterData", parallel = true)
    public static Object[][] getRegisterData() throws Exception{
        return DataProviderFromCsv.getTestData(Constants.注册页面I.filepath+ "/" +Constants.注册页面I.filename);
    }


    @Test(dataProvider = "RegisterData")
    public void test_Register_success(String no, String testName, String username, String eMail, String password, String name,
                                      String prolanguage, String accept, String verifyusername, String verifyeMail, String verifypassword,
                                      String verifyname, String verifyprolanguage, String verifyaccept) throws IllegalArgumentException, Exception{


        HomePage_PF homePage_pf = null;
        RegisterPage_PF registerPage_pf = null;
        RegisterVerifyPage_PF registerVerifyPage_pf = null;
        try{
            homePage_pf = new HomePage_PF(driver);
            registerPage_pf = homePage_pf.navigate_register_page();
            registerVerifyPage_pf = registerPage_pf.register_sucess(username, eMail, password, name, prolanguage, accept);
        }catch (AssertionError error){
            Assert.fail("调用注册成功方法失败");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_name_value(), name);
        }catch (AssertionError nameerror){
            Assert.fail("name断言失败,查看name值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_username_value(), username);
        }catch (AssertionError usernameerror){
            Assert.fail("username断言失败,查看username值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_password_value(), password);
        }catch (AssertionError passworderror){
            Assert.fail("password断言失败,查看password值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_preferedProgrammingLanguage_value(), prolanguage);
        }catch (AssertionError prolanguageerror){
            Assert.fail("prolanguage断言失败,查看prolanguage值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_email_value(), eMail);
        }catch (AssertionError eMailerror){
            Assert.fail("eMail断言失败,查看eMail值是否正确");
        }

        try{
            Assert.assertEquals(registerVerifyPage_pf.get_acceptAdds_value(), accept);
        }catch (AssertionError accepterror){
            Assert.fail("accept断言失败,查看accept值是否正确");
        }
    }
    @AfterMethod
    public void tearDown(){
        driver.quit();
    }
}

猜你喜欢

转载自blog.csdn.net/dawei_yang000000/article/details/108303352
今日推荐