Appium for app UI 自动化之 Java&Python 测试(三)

经过一天环境的安装:就可以开始运行我们的测试代码了,在运行之前插一段话。

因为个人是windows 电脑,而sdk 默认是安装在c盘个人目录吓得appdata中的,导致我的c盘瞬间爆炸,那么我们可以在安装时候指定sdk 安装目录,中度强迫症患者,就喜欢将所有安装的文件应用放在自己指定的盘符下,细细的划分。

接下来,我们就要测试整套环境是否正常运行。

Python 篇

1、安装python-client

pip install Appium-Python-Client

 2、运行测试代码

首先启动 Android Emulator(这里需要重点说明下,当前appium版本windows上支持到6.0版本,而mac上只支持到 5.1版本,因此我们在创建Android虚拟机时候,api 版本控制在当前appium支持的最高版本内),

然后启动 appium 并且设置appium 中的platformVersion 对应当前驱动的版本。不然可能会报错!

启动pycharm 创建 测试代码:

import time

from appium import webdriver

desired_caps = {'platformName': 'Android', 'platformVersion': '6.0', 'deviceName': 'Android Emulator',
                'appPackage': 'com.android.calculator2', 'appActivity': '.Calculator'}

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

driver.find_element_by_name("1").click()

driver.find_element_by_name("5").click()

driver.find_element_by_name("9").click()

driver.find_element_by_name("delete").click()

driver.find_element_by_name("9").click()

driver.find_element_by_name("5").click()

driver.find_element_by_name("+").click()

driver.find_element_by_name("6").click()

driver.find_element_by_name("=").click()

print(driver.find_element_by_id("com.android.calculator2:id/formula").text)

time.sleep(2)

driver.quit()

完美运行!

Java 篇

1、安装Java-client

 <!--app UI 自动化基础依赖-->
       <dependency>
           <groupId>io.appium</groupId>
           <artifactId>java-client</artifactId>
           <version>6.1.0</version>
       </dependency>

我们在测试代码时候紧紧需要该依赖即可运行。(之前也因为其他原因测试代码跑不起来,看到网上说要添加各种依赖,最终发现原因:或因我的代码有问题,或因我们的devices 版本有问题,或因我们的Appium 环境设置出错导致的,仔细查看错误原因,终会解决!)配置有问题的,可以看前两章内容,也可以留言。

2、运行测试代码

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.MalformedURLException;
import java.net.URL;

public class JSJTest {
    public static void main(String[] args) throws MalformedURLException, InterruptedException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("deviceName","Android Emulator");
        capabilities.setCapability("platformVersion", "6.0");
        capabilities.setCapability("platformName","Android");
        capabilities.setCapability("appPackage", "com.android.calculator2");
        capabilities.setCapability("appActivity", ".Calculator");

//  该 处需要注意,我们使用的appium 实现appUI 自动化,创建driver 对象时候,
//  建议指定父类 WebDriver 对象,来实现AppiumDriver或者AndroidDriver,
//  因为AndroidDriver 继承了AppiumDriver类,而AppiumDriver 又间接继承RemoteWebDriver类,
//  该类实现了WebDriver 类,
//  以下三种创建驱动都可以运行,但个人建议第三种        
//        AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
//        WebDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        WebDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.findElement(By.name("1")).click();
        driver.findElement(By.name("5")).click();
        driver.findElement(By.name("9")).click();
        driver.findElement(By.name("delete")).click();
        driver.findElement(By.name("+")).click();
        driver.findElement(By.name("6")).click();
        driver.findElement(By.name("=")).click();
        Thread.sleep(2000);
        String result =     driver.findElement(By.id("com.android.calculator2:id/formula")).getText();
        System.out.println(result);

        driver.quit();
    }
}

在这里特殊说明下Desired Capabilities:

Desired Capabilities在启动 session 的时候是必须提供的。客户端将这些值发送给appium Server 告诉它,我们的设备情况,比如:

  • deviceName:启动哪种设备,是真机还是模拟器?iPhone Simulator,iPad Simulator,iPhone Retina 4-inch,Android Emulator,Galaxy S4...

  • automationName:使用哪种自动化引擎。appium(默认)还是Selendroid。

  • platformName:使用哪种移动平台。iOS, Android, orFirefoxOS。

  • platformVersion:指定平台的系统版本。例如指的Android平台,版本为5.1。

  • appActivity:待测试的app的Activity名字。比如MainActivity、.Settings。注意,原生app的话要在activity前加个"."。

  • appPackage:待测试的app的Java package。比如com.example.android.myApp, com.android.settings。

以上说明参考学习虫师的:appium新手入门(7)—— Desired Capabilities

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值