JavaAppium4.0[测试计算器]

Java结合TestNG单元测试框架结合DP实现数据驱动,实现移动端计算器测试【源码】

package testscript;
/*
 * @FileName testscript.Test_Calculator:
 * @author davieyang
 * @create 2018-11-20 11:02
 */
import io.appium.java_client.remote.MobileCapabilityType;
import org.apache.log4j.xml.DOMConfigurator;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;
public class Test_Calculator {
    static {
        //指定log4j配置文件为log4j.xml
        DOMConfigurator.configure("log4j.xml");
    }
    AndroidDriver driver;
    @BeforeTest
    public void setUp() throws MalformedURLException{
        DesiredCapabilities caps = new DesiredCapabilities();
        // des.setCapability("app", "c:\\");
        caps.setCapability("automationname", "Appium");
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "23");
        caps.setCapability("udid", "WTKDU17105005171");
        caps.setCapability("deviceName", "Honor");
        //com.android.contacts
        caps.setCapability("appPackage", "com.android.calculator2");
        //.activities.PeopleActivity
        caps.setCapability("appActivity", ".Calculator");
        caps.setCapability("appWaitActivity", ".Calculator");
        caps.setCapability("unicodeKeyboard", "True");
        caps.setCapability("resetKeyboard", "True");
        caps.setCapability("newCommandTimeout", "15");
        caps.setCapability("nosign", "True");
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),caps);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }    
    
    @DataProvider(name="testdata")
    public Object[][] getData(){
        return new Object[][]{{"20","80","100","+"},{"90","3","270","×"},{"6","2","3","÷"}};
    }
    @Test(dataProvider = "testdata")
    public void calcTestcase(String num1,String num2,String result,String calcType){
        for(char num:num1.toCharArray()){
            driver.findElement(By.xpath("//android.widget.Button[@text='"+String.valueOf(num)+"']")).click();
        }
        driver.findElement(By.xpath("//android.widget.Button[@text='"+calcType+"']")).click();
        for(char num:num2.toCharArray()){
            driver.findElement(By.xpath("//android.widget.Button[@text='"+String.valueOf(num)+"']")).click();
        }
        driver.findElement(By.xpath("//android.widget.Button[@text='=']")).click();
        String value = driver.findElement(By.xpath("//android.widget.EditText[@class='android.widget.EditText']"))
                .getAttribute("text");
        Assert.assertEquals(value, result);
    }
}
package testscript;
/*
 * @FileName testscript.Test_Calculator:
 * @author davieyang
 * @create 2018-11-20 11:02
 */
import io.appium.java_client.remote.MobileCapabilityType;
import org.apache.log4j.xml.DOMConfigurator;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;
public class Test_Calculator {
    static {
        //指定log4j配置文件为log4j.xml
        DOMConfigurator.configure("log4j.xml");
    }
    AndroidDriver driver;
    @BeforeTest
    public void setUp() throws MalformedURLException{
        DesiredCapabilities caps = new DesiredCapabilities();
        // des.setCapability("app", "c:\\");
        caps.setCapability("automationname", "Appium");
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "23");
        caps.setCapability("udid", "WTKDU17105005171");
        caps.setCapability("deviceName", "Honor");
        //com.android.contacts
        caps.setCapability("appPackage", "com.android.calculator2");
        //.activities.PeopleActivity
        caps.setCapability("appActivity", ".Calculator");
        caps.setCapability("appWaitActivity", ".Calculator");
        caps.setCapability("unicodeKeyboard", "True");
        caps.setCapability("resetKeyboard", "True");
        caps.setCapability("newCommandTimeout", "15");
        caps.setCapability("nosign", "True");
        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),caps);
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }
    @Test
    public void add() {
        driver.findElement(By.xpath("//android.widget.Button[@text='5']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='+']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='8']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='=']")).click();
        String value = driver.findElement(By.xpath("//android.widget.EditText[@class='android.widget.EditText']"))
                .getAttribute("text");
        Assert.assertEquals(value, "13");
    }
    @Test(enabled = false)
    public void sub() {
        driver.findElement(By.xpath("//android.widget.Button[@text='1']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='0']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='-']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='8']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='=']")).click();
        String value = driver.findElement(By.xpath("//android.widget.EditText[@class='android.widget.EditText']"))
                .getAttribute("text");
        Assert.assertEquals(value, "2");
    }

    @Test(enabled = false)
    public void mul() {
        driver.findElement(By.xpath("//android.widget.Button[@text='5']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='×']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='8']")).click();
        driver.findElement(By.xpath("//android.widget.Button[@text='=']")).click();
        String value = driver.findElement(By.xpath("//android.widget.EditText[@class='android.widget.EditText']"))
                .getAttribute("text");
        Assert.assertEquals(value, "40");
    }
}
发布了207 篇原创文章 · 获赞 124 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/dawei_yang000000/article/details/104786265