第一个Appium(java)例子

本文介绍如何使用Appium进行移动应用自动化测试。通过一个实际的例子——知乎应用的注册功能测试,详细展示了从环境搭建到测试脚本编写的过程。

第一个Appium(java)例子

环境搭建好了后,可以开始写测试脚本了,这里以知乎的客户端为测试对象:

1.      新建Java工程,名字为Appium_zhihu_demo,因为我是用zhihu.apk做测试的

          

2.      在工程下新建apps和libs文件夹,apps文件夹用来放apk包

           

             

3.      配置build path,选择project->右键build path->Configure Build Path…或者直接选择Add                 ExternalArchives…

            

                 

注:我学习的时候参考的资料上是添加的java-client-1.2.1.jar,但后来运行一些脚本的时候有问题,自己又添加了高版本java-client-3.1.0.jar包。

4.      添加jar包完成后,就可以开始新建包->新建java  class了

             

            

5.      开始编写脚本,这里我们测试知乎的注册功能,代码如下(手机号码,登录密码等注册信息输入真实的即可运行成功):

         右键Run as TestNG,运行截图如下:

            

        

     

     eclipse 控制台信息:

     

 

至此,第一个Appium 自动化测试用例完成,测试功能为注册界面的交互。


代码如下:

import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import io.appium.java_client.AppiumDriver;
public class AppiumZhihuRegister {
    public AppiumDriver driver;
    private boolean isInstall = false;

    public void startRecord() throws IOException {
        Runtime rt = Runtime.getRuntime();
        // this code for record the screen of your device
        rt.exec("cmd.exe /C adb shell screenrecord /sdcard/runCase.mp4");
    }

    @BeforeClass(alwaysRun = true)
    public void setUp() throws Exception {
        //启动appium
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName","lge-nexus_4-005475cbccd279d4");
        capabilities.setCapability("automationName","Appium");
        capabilities.setCapability("platformName","Android");
        capabilities.setCapability("platformVersion","4.4.2");
        
       //配置测试apk
        capabilities.setCapability("appPackage", "com.zhihu.android");
        capabilities.setCapability("appActivity", ".app.ui.activity.MainActivity ");
        capabilities.setCapability("sessionOverride", true);    //每次启动时覆盖session,否则第二次后运行会报错不能新建session
        capabilities.setCapability("unicodeKeyboard", true);    //设置键盘
        capabilities.setCapability("resetKeyboard", false);     //设置默认键盘为appium的键盘
        driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

        //如果真机设备已经安装知乎,则不需要重新安装
        if (isInstall) {
            File classpathRoot = new File(System.getProperty("user.dir"));
            File appDir = new File(classpathRoot, "apps");
            File app = new File(appDir, "zhihu.apk");
            capabilities.setCapability("app", app.getAbsolutePath());
        } 
        startRecord();
    }

    @Test
    public void loginWithMicroBlog() throws InterruptedException {
        // swipe to right
    	driver.findElementById("com.zhihu.android:id/register_btn").click();
        driver.findElementById("com.zhihu.android:id/username").sendKeys("手机号");
        driver.findElementById("com.zhihu.android:id/password").sendKeys("登录密码");
        driver.findElementById("com.zhihu.android:id/fullname").sendKeys("用户昵称");
        WebElement NxtBtn=driver.findElementById("com.zhihu.android:id/btn_progress");
        Assert.assertEquals(NxtBtn.isEnabled(), true);
        Thread.sleep(2000);
    }

    @AfterClass(alwaysRun = true)
    public void tearDown() throws Exception {
        driver.quit();
    }
}



评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值