博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Appium自动化测试——测试流程
阅读量:2062 次
发布时间:2019-04-29

本文共 3581 字,大约阅读时间需要 11 分钟。

1.启动appium service

有多种启动方式,在自动化测试中最长使用的就是AppiumDriverLocalService,可以设置使用的ip,port等。

//在运行时找不到appium,可以手动添加appium的位置	System.setProperty(AppiumServiceBuilder.NODE_PATH ,               "/usr/local/bin/node");    System.setProperty(AppiumServiceBuilder.APPIUM_PATH ,               "/usr/local/bin/appium");               	AppiumServiceBuilder builder = new AppiumServiceBuilder();    builder.withLogFile(new File("log/appium.log"));    appiumService = builder.build();    appiumService.start();

我们查看AppiumServiceBuilder的构造方法,以及该类的参数

//挑选了个别属性	public static final String NODE_PATH = "NODE_BINARY_PATH";    public static final String DEFAULT_LOCAL_IP_ADDRESS = "0.0.0.0";    private static final String APPIUM_FOLDER = "appium";    private static final String BUILD_FOLDER = "build";    private static final String LIB_FOLDER = "lib";    private static final String MAIN_JS = "main.js";    public static final int DEFAULT_APPIUM_PORT = 4723;    private static final String BASH = "bash";    private static final String CMD_EXE = "cmd.exe";    private String ipAddress = DEFAULT_LOCAL_IP_ADDRESS;    //The first starting is slow sometimes on some    //environment    private long startupTimeout = 120;    private TimeUnit timeUnit = TimeUnit.SECONDS;     	public AppiumServiceBuilder() {
usingPort(DEFAULT_APPIUM_PORT); withEnvironment(System.getenv()); }

会发现这些属性在创建对象时会给出默认值,我们也可以自己定义。

2.设置测试的系统IOS/Android

这个步骤不是必须的,如果只测试单独的系统就不需要有这个步骤。自动化代码如果是设计测试两种系统中的某个APP的话,后续的一些地方可能就需要根据不同的系统做不同的事情。

3.创建驱动

//以android为例//appName是安装包的名称File app = new File(TaxiConstants.APP_DIR, appName);// 负责启动服务端时的参数设置DesiredCapabilities capabilities = new DesiredCapabilities();//如果检测到有APP,就不重新安装capabilities.setCapability(MobileCapabilityType.NO_RESET, true);capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android");   //设置测试的平台是IOS/Android/FirefoxOScapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); //设置apk路径capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());//设置测试的web浏览器,如果测试的是移动浏览器则使用,如果是App则为空。	capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "");capabilities.setCapability(MobileCapabilityType.TAKES_SCREENSHOT, "true");//使用哪个自动化引擎(Android引擎:Appium(默认)、Selendroid、UiAutomator2或者Espresso)capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);//多长时间没有消息就断开appiumcapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, TaxiConstants.NEW_COMMAND_TIMEOUT);capabilities.setCapability(AndroidMobileCapabilityType.APP_WAIT_ACTIVITY,"com.didapinche.taxidriver.*");capabilities.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);capabilities.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS, true);//使用unicodeKeyboard的编码方式来发送字符串capabilities.setCapability(AndroidMobileCapabilityType.UNICODE_KEYBOARD, true); //重置输入法到原有状态capabilities.setCapability(AndroidMobileCapabilityType.RESET_KEYBOARD, true);AppiumDriver
driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

4.授权

新安装APP时总会弹出一些对内存,通讯录等的权限弹窗

for (int i = 0; i < times; i++) {
WebElement element = driver.findElement(MobileBy.xpath("//*[@class='android.widget.Button'][2]")); if (element != null) {
if (element.isDisplayed()) {
element.click(); } } Thread.sleep(500);}

5. 开始你的测试工作

到现在为止,准备工作已经完成了,下面就可以进行我们的测试工作了,各种测试逻辑就在这个步骤完成

6. 关闭appium service

appiumService.stop();

参考:

https://www.cnblogs.com/NaCl/p/10172142.html
https://blog.csdn.net/ljl6158999/article/details/80594521

你可能感兴趣的文章
计算机底层是什么东西?
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
安装系统之一 U盘启动盘制作
查看>>
安装系统之二 U盘启动盘制作---UEFI版
查看>>
安装系统之四 U盘装GHOST XP教程
查看>>
安装系统之五 U盘装原版XP教程
查看>>
安装系统之六 U盘装GHOST WIN7教程
查看>>
安装系统之八 U盘装GHOST WIN8教程
查看>>
安装系统之九 U盘装原版WIN8教程
查看>>
安装系统之三 U盘启动盘建立磁盘分区教程
查看>>
系统安装之十 U盘安装原版win10
查看>>
安装系统之十一 UEFI和Legacy及UEFI+Legacy启动的区别
查看>>
树莓派屏幕---------Android手机作为树莓派的屏幕
查看>>
嵌入式 知识点 积累 (一)
查看>>
嵌入式 知识积累 (二) 之 三个学习阶段
查看>>
嵌入式 知识积累(三) 之 基本技能
查看>>
嵌入式 知识积累(四) 之 硬件开发的基本过程
查看>>
嵌入式 知识积累(五)之硬件工程师具备基本技能
查看>>
中小型园区网络的设计与实现 (一)
查看>>