医学专业网站,沈阳哪里可以做网站营销,各企业自己的官网,东营住房和城乡建设信息网环境安装
基本环境安装
安装node.js
下载地址#xff1a;Node.js — Run JavaScript Everywhere
安装Java JDK
下载地址#xff1a;JDK Builds from Oracle
安装夜神模拟器
360上找下就能装#xff0c;安装好后将夜神的bin目录#xff0c;添加到系统变量的path中。 …环境安装
基本环境安装
安装node.js
下载地址Node.js — Run JavaScript Everywhere
安装Java JDK
下载地址JDK Builds from Oracle
安装夜神模拟器
360上找下就能装安装好后将夜神的bin目录添加到系统变量的path中。
安装Android SDK
下载地址AndroidDevTools - Android 开发工具 | Android Studio 下载 | android studio 下载 | download android studio | Android SDK 下载 | download android sdk | SDK Tools 下载 | download android sdk tools | Gradle 下载 | download gradleg
在上面的下载地址下载包android-sdk_r24.4.1-windows.zip解压。
然后运行SDK Manager.exe最少要安装一下platform-tools。 在系统的环境变量中添加ANDROID_HOME 安装完platform-tools后到platform-tools目录中找到adb.exe复制这个文件到夜神的bin目录中替换掉夜神的adb.exe和nox_adb.exe这样才能连接上。
运行命令看看是否能连接上 adb devices List of devices attached 127.0.0.1:62029 device 安装Appium
先安装服务 npm i -g appium 安装完后运行命令appium会有类似输出[Appium] Welcome to Appium v3.0.1
再安装驱动 appium driver install uiautomator2 安装好驱动再运行命令appium会有类似输出[Appium] - uiautomator24.2.9 (automationName UiAutomator2)
几个命令
查看设备 adb devices List of devices attached 127.0.0.1:62029 device
连接设备 adb connect 127.0.0.1:62029 就一个设备的情况可以不用运行个 查看安卓的版本 adb shell getprop ro.build.version.release 查看应用包名 adb shell dumpsys window 找到这行mCurrentFocusWindow{55c62e4 u0 com.cadmanage.doctor/com.cadmanage.doctor.activity.LoginActivity}分别对应参数的appPackage / appActivity
获取UI布局 adb shell uiautomator dump /sdcard/ui_dump.xml # 导出布局的xml到模拟器的存储 adb pull /sdcard/ui_dump.xml ./ # 从模拟器的存储将文件另存到电脑 编写测试node.js)
安装依赖包
新建一个目录在这个目录下运行
npm init
安装webdriverio包
npm i --save-dev webdriverio
编写测试文件
包安装好后添加一个文件test.js内容如下
const { remote } require(webdriverio);const capabilities {platformName: Android,appium:automationName: UiAutomator2,appium:deviceName: 127.0.0.1:62029, // 使用实际设备IDappium:platformVersion: 7.1.2, // 指定安卓版本appium:appPackage: com.cadmanage.doctor,appium:appActivity: .activity.LoginActivity,appium:noReset: true, // 不重置应用状态
};const wdOpts {hostname: process.env.APPIUM_HOST || 127.0.0.01,port: parseInt(process.env.APPIUM_PORT, 10) || 4723,logLevel: info,capabilities,
};async function runTest() {const driver await remote(wdOpts);try {// 定位手机号输入框 (通过resource-id)const phoneInput await driver.$(//*[resource-idcom.cadmanage.doctor:id/et_phone]);// 点击输入框await phoneInput.click();// 输入手机号await phoneInput.setValue(18000000003);// 稍作停顿以便观察结果await driver.pause(2000);} finally {// 关闭会话await driver.deleteSession();}
}runTest().catch(console.error);
运行测试
启动模拟器打开要测试的应用运行命令 node test.js 官方文档安装 Appium - Appium Documentation
http请求示例
appium本身是一个http服务可以使用http协议请求如 POST http://127.0.0.1:4723/session BODY{capabilities:{alwaysMatch:{platformName:Android,appium:automationName:UiAutomator2,appium:deviceName:127.0.0.1:62029,appium:platformVersion:7.1.2,appium:appPackage:com.cadmanage.doctor,appium:appActivity:.activity.LoginActivity,appium:noReset:true},firstMatch:[{}]}} webdriverio封装了这个请求有时候会把真实的错误原因隐藏此时就可以直接用http请求看看具体的错误信息。