代码改变世界

6、通过Appium Desktop 实现录制功能

2018-04-11 10:06  软件测试汪  阅读(733)  评论(0编辑  收藏  举报

1、老规矩,我们进入下面这个界面

 图中红色标记1为 “top by coordinates”  按钮, 这是一种通过坐标定位元素的方式。
 图中红色标记2为 “Start Recording”  按钮, 选中表示处理录制状态。

2、点击“top by coordinates”  按钮,再点击 “Start Recording”  按钮,我们就可以在左则的 App 界面上点点点了。 脚本会随着我们的点击生成。

 

 3、选择导出的脚本语言,如下所示,可以选择如下5种

 

 4、我们选择导出java语言

 图中红色标记1为 我们选择java-JUnit格式的代码

 图中红色标记2为 生成完整的脚本

 图中红色标记3为 复制

5、最终我们得到如下代码

import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;

public class SampleTest {

  private AndroidDriver driver;

  @Before
  public void setUp() throws MalformedURLException {
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setCapability("automationName", "Appium");
    desiredCapabilities.setCapability("platformName", "Android");
    desiredCapabilities.setCapability("platformVersion", "6.0");
    desiredCapabilities.setCapability("appPackage", "com.android.calculator2");
    desiredCapabilities.setCapability("appActivity", ".Calculator");
    desiredCapabilities.setCapability("deviceName", "msm8953_64");

    URL remoteUrl = new URL("http://localhost:4723/wd/hub");

    driver = new AndroidDriver(remoteUrl, desiredCapabilities);
  }

  @Test
  public void sampleTest() {
    (new TouchAction(driver)).tap(429, 574).perform()
    (new TouchAction(driver)).tap(596, 691).perform()
    (new TouchAction(driver)).tap(424, 572).perform()
    (new TouchAction(driver)).tap(418, 1067).perform()
  }

  @After
  public void tearDown() {
    driver.quit();
  }
}

 

 6、分析脚本

我们发现它生成的控件定位都是以坐标形式的, 但是我们知道坐标定位是不可靠的,因为它会受屏幕大小和分辨率的影响 。不过呢,个人认为也是有可以借鉴之处,至少对Appium有了一个简单的认识