Appium+java+Mac自动化测试(eclipse脚本编写)

发表于:2019-2-15 11:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zhouchuandake    来源:CSDN

  1.Eclipse安装
  百度一下“eclipse下载”,然后选择第一个点进去,如下图
  然后
  然后傻瓜式安装。
  安装好后就可以打开了。
  2.创建工程,文件。略,网上一大堆。
  2.5集成maven、testing插件,百度一下,花费十多分钟就可以,主要是下载需要时间,确认集成成功了,不要慌。
  3.写脚本
  在工程里面新建一个lib 文件夹,然后去这里下载需要的jar包
  http://download.csdn.net/download/zhouchuandake/10193801
  下载后放到lib文件夹里面,然后右键一个个加入工程,不会的百度一下,怎么添加jar包。
  然后新建一个app目录,里面放要测试的安装包.apk,我这里放的是花生地铁Wi-Fi的安装包,可以去豌豆荚历史版本中下一个放进来,版本4.*的就可以。
  目录大概这样:
  然后新建一个类,开始写脚本
   package nfyg.testapp;
  import java.io.File;
  import java.io.IOException;
  import java.net.URL;
  import java.util.concurrent.TimeUnit;
  import org.openqa.selenium.remote.CapabilityType;
  import org.openqa.selenium.remote.DesiredCapabilities;
  import org.testng.Assert;
  import org.testng.annotations.Test;
  import io.appium.java_client.AppiumDriver;
  import io.appium.java_client.android.AndroidDriver;
  import nfyg.testapp.utils.UtilGesture;
  import nfyg.testapp.utils.UtilOnClick;
  @Test
  public class StartApp<IChimpDevice> {
  public static AppiumDriver driver;
  public static AppiumDriver getDriver() {
  return driver;
  }
  public static void setDriver(AppiumDriver driver) {
  StartApp.driver = driver;
  }
  private boolean isInstall = false;//可以删除
  public void startDriver() throws Exception {
  // set up appium设置apk路径
  File classpathRoot = new File(System.getProperty("user.dir"));
  File appDir = new File(classpathRoot, "app");
  File app = new File(appDir, "app-release.apk");//与app文件夹里的文件名字要一致
  System.out.println(app.getAbsolutePath());// 获取绝对路径
  // 启动appium
  DesiredCapabilities capabilities = new DesiredCapabilities();
  // 设置apk 的路径
  capabilities.setCapability("app", app.getAbsolutePath());
  // no need sign 安装时不对apk进行重签名,设置很有必要,否则有的apk在重签名之后无法正常使用
  capabilities.setCapability("noSign", "True");
  capabilities.setCapability("deviceName", "9da9a9347d23");//手机设备号
  capabilities.setCapability("automationName", "Appium");
  capabilities.setCapability("platformName", "Android");
  capabilities.setCapability("platformVersion", "6.0.1");// 手机系统版本
  capabilities.setCapability("appPackage", "com.nfyg.hsbb");//要测试的app包名
  capabilities.setCapability("appActivity", ".views.main.CoverActivity");//app的启动类
  capabilities.setCapability("sessionOverride", true); // 每次启动时覆盖session,否则第二次后运行会报错不能新建session
  capabilities.setCapability("unicodeKeyboard", true); // 设置键盘support Chinese支持中文输入
  capabilities.setCapability("resetKeyboard", true); // false设置默认键盘为appium的键盘,true为系统键盘
  capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); // 指定浏览器的名字,我们测试的是APK所以没有浏览器,故而为空;
  // //指定需要测试的APK,也就是需要安装的APK文件;
  driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
  driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  //到这里就已经把app启动起来了,下面的是操作动作,滑动与点击
  // UtilGesture.swipeToLeft(driver, 1000, 5);//滑动
  // UtilGesture.swipeToRight(driver, 1000, 4);
  // UtilGesture.swipeToDown(driver, 1000, 2);
  // UtilGesture.swipeToUp(driver, 1000, 3);
  // UtilGesture.swipeToLeft(driver, 1000, 5);
  // UtilGesture.swipeToDown(driver, 1000, 2);
  // UtilGesture.swipeToUp(driver, 1000, 3);
  Assert.assertEquals(2, 2, "Not equals: ");//断言举例,先不管
  // UtilOnClick.onClick("com.nfyg.hsbb:id/click_view", driver);//点击动作,先不管
  }
  /**
  * 录视频,这里可以先不管
  */
  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 --time-limit 3 --size 1280*720
  // /storage/runCase.mp4");
  }
  }
  代码拷贝进来后,确认没有错误
  4.然后用数据线连接Android手机到Mac
  打开终端,输入adb devices回车,就会看到刚刚USB连接的手机的设备号,如果没有出来,那就确认下有没有打开设备的开发者模式、有没有允许手机的USB安装权限、USB调试权限。
  获取设备号后,替换代码里面的手机设备号。
  5.然后选中类,右键选择testing运行
  然后就跑起来了。app会自动安装在手机并启动。
  
     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号