Appium-desktop环境搭建

Appium环境搭建

  • 作者介绍
  • 原理你懂吗?
  • Java环境配置
  • Android环境配置
  • Appium相关组件安装卸载
    • Appium命令行安装和卸载步骤
  • Appium实例演示
    • 1.连接设备
    • 2. appium客户端的搭建和脚本的编写
      • appium,你猜支持多少个客户端脚本语言?8种哦!
      • JS-Client(Node.js)
      • Java-Client
      • Python-Client

作者介绍

我叫邓文博,我有梦想!

原理你懂吗?

Appium-desktop环境搭建_第1张图片
Appium-desktop环境搭建_第2张图片
从appium的客户端,appium服务端,安卓或iOS的移动端我们都要配置好,配置好之后,就开干!

Java环境配置

  • JAVA_HOME配置:JAVA_HOME D:\tool\Java\jdk1.8.0_171
    jdk官网下载
    Appium-desktop环境搭建_第3张图片
    Appium-desktop环境搭建_第4张图片
  • Path配置 :Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
    Appium-desktop环境搭建_第5张图片
  • Java验证 :java -version
    Appium-desktop环境搭建_第6张图片

Android环境配置

安卓sdk,开发工具下载
Appium-desktop环境搭建_第7张图片

  • ANDROID_HOME配置 D:\tool\Android\android-sdk
  • Path配置 D:\tool\Android\android-sdk\tools;D:\tool\Android\android-sdk\platform-tools;
  • Android验证
    Appium-desktop环境搭建_第8张图片

Appium相关组件安装卸载

Appium命令行安装和卸载步骤

1.先安装Node.js 当前版本 node-v8.12.0-x64.msi,官网下载安装Node.js官网

  • node --version验证,如果失败,就去配置Node环境变量
    在这里插入图片描述
    Appium-desktop环境搭建_第9张图片
    2.安装 .NET framework4.5 .NET framework各版本下载
    3.安装Appium服务
  • (不推荐:无桌面程序)cmd 命令安装 npm install -g appium
  • (推荐:有桌面程序)下载这个appium-desktop-setup-1.8.0.exe
  • 要验证Appium的所有依赖项是否满足,可以使用appium-doctor。用npm install -g appium-doctor,然后运行appium-doctor命令,提供–ios或–android标志以验证所有依赖项的设置是否正确。
    Appium-desktop环境搭建_第10张图片
  • appium 服务启动方式 cmd 命令appium
    在这里插入图片描述
    -Appium 服务卸载
    在这里插入图片描述
    -cmd命令npm ? 帮助信息获取(npm支持的命令)
    Appium-desktop环境搭建_第11张图片

Appium实例演示

1.连接设备

  • 创建模拟器,下载安装启动夜神模拟器
    Appium-desktop环境搭建_第12张图片
    -cmd命令验证adb是否连接成功模拟器 adb devices,如果显示如下,则没有连接,我们需要命令连接,adb connect 127.0.0.1:62001(夜神模拟器的默认端口),并重新验证
    Appium-desktop环境搭建_第13张图片

2. appium客户端的搭建和脚本的编写

appium,你猜支持多少个客户端脚本语言?8种哦!

Appium-desktop环境搭建_第14张图片

JS-Client(Node.js)

  • cmd安装webdriverio(web driver input output{就是web http通信工具O(∩_∩)O哈哈~)
  • npm install webdriverio
  • 创建js文件
    Appium-desktop环境搭建_第15张图片
  • 准备好测试用例,准备测试
  • 启动Appium服务,两种方式,1.cmd命令启动,2.桌面应用程序启动
    Appium-desktop环境搭建_第16张图片
  • cmd执行node <用例路径>
    Appium-desktop环境搭建_第17张图片
  • 当你看到appium中打印日志,模拟器或者设备执行并安装了apk或者ipa程序,并且出现自动测试动作,说明已经成功了,只需要在脚本中编写需要的测试行为,就可以实现自动化了!
    Appium-desktop环境搭建_第18张图片
    Appium-desktop环境搭建_第19张图片

Java-Client

  • 先准备java开发环境,集成appium-java-client
  • Inteillij idea 创建maven项目,不需要点击模板
    Appium-desktop环境搭建_第20张图片
    -先集成java-client与单元测试testng包
    Appium-desktop环境搭建_第21张图片
    Appium-desktop环境搭建_第22张图片
  • appiumtest测试类的内容为:

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class appiumtest {
    public AppiumDriver driver;

    @BeforeClass
    public void startTest() throws MalformedURLException {
        File appDir = new File("E:\\yanxuan-aos_pd_8.apk");
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformVersion", "4.4.2");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("deviceName", "127.0.0.1:62001");
        capabilities.setCapability("unicodeKeyboard", "true");//键盘支持汉字输入
        capabilities.setCapability("resetKeyboard", "true");//支持重置键盘
        capabilities.setCapability("automationName", "appium");
        capabilities.setCapability("app", "E:\\yanxuan-aos_pd_8.apk");

        capabilities.setCapability("appPackage", " com.netease.yanxuan");
        capabilities.setCapability("appActivity", "com.netease.yanxuan.module.mainpage.activity.MainPageActivity");

        AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);//请求等待时间设置


    }
    @Test
    public void test1(){
        driver.findElementByName("分类").click();
    }
    @AfterClass
    public void teardown(){
        driver.quit();//驱动退出,线程杀掉
    }
}

  • 准备好了,我们启动appium服务,启动appium
    Appium-desktop环境搭建_第23张图片
    Appium-desktop环境搭建_第24张图片
    Appium-desktop环境搭建_第25张图片
    Appium-desktop环境搭建_第26张图片
    -ok,完成,脚本需要你们自己去开发了,加油!

Python-Client

  • 创建pyhton文件
import os
import unittest
from appium import webdriver
from time import sleep

# Returns abs path relative to this file and not cwd
PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p)
)

class ContactsAndroidTests(unittest.TestCase):
    def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = 'Android'
        desired_caps['platformVersion'] = '4.4.2'
        desired_caps['deviceName'] = '127.0.0.1:62001'
        desired_caps['app'] = PATH(
            'E:\\sample-code-master\\sample-code-master\\sample-code\\apps\\ContactManager\\ContactManager.apk'
        )
        desired_caps['appPackage'] = 'com.example.android.contactmanager'
        desired_caps['appActivity'] = 'com.example.android.contactmanager.ContactManager'

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

    def tearDown(self):
        self.driver.quit()

    def test_add_contacts(self):
        el = self.driver.find_element_by_accessibility_id("Add Contact")
        el.click()

        textfields = self.driver.find_elements_by_class_name("android.widget.EditText")
        textfields[0].send_keys("Appium User")
        textfields[2].send_keys("[email protected]")

        self.assertEqual('Appium User', textfields[0].text)
        self.assertEqual('[email protected]', textfields[2].text)

        self.driver.find_element_by_accessibility_id("Save").click()

        # for some reason "save" breaks things
        alert = self.driver.switch_to_alert()

        # no way to handle alerts in Android
        self.driver.find_element_by_android_uiautomator('new UiSelector().clickable(true)').click()

        self.driver.press_keycode(3)



if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(ContactsAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

  • 启动appium服务
  • cmd执行py文件
    Appium-desktop环境搭建_第27张图片
    Appium-desktop环境搭建_第28张图片
    Appium-desktop环境搭建_第29张图片
  • 脚本已执行完成!

你可能感兴趣的:(自动化测试,appium)