IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> APPIUM实现APP自动化的基本使用教程 -> 正文阅读

[开发测试]APPIUM实现APP自动化的基本使用教程


官网:https://appium.io/
APP自动化测试工具

安装电脑客户端

下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.21.0
根据自己系统下载对应的客户端,安装提示安装。如适用于windows系统的Appium-windows-1.21.0.exe。

配置客户端

打开客户端后,如下图,不用修改什么,点击Edit Configurations按钮。
在这里插入图片描述
配置下图2个参数:JAVA_HOME若电脑系统变量配置了同名参数则会自动读取到。ANDROID_HOME需要先配置到系统变量中,然后将路径也填入下图中。点击Save…按钮。
在这里插入图片描述
可以安装appium-doctor来检查appium的配置情况。安装方式可参考安装appium-doctor

启动服务

回到主界面,点击Start Server vX.X.X按钮。进入控制台日志界面,看到Appium REST http interface listener started on 0.0.0.0:4723就表示启动成功了。

连接设备中的APP

认识界面提供的功能

在这里插入图片描述
点击上图搜索按钮
在这里插入图片描述
主要了解介绍图中4个地方的用处(其实其他我还不会用)
1、直译为渴望的能力,其实就是填写一组你想要连接的设备和app信息。3区域为输入参数的区域。
2、已保存的能力集。当你填完3区域内容后,点击右下角Save As…按钮,你所填的内容会保存一份到这个集合中,下次再进入该界面可以直接选择而不用输入。
3、一组能力列表。需要根据自己的需要填入,如连接一个设备内的App的配置:
{
“platformName”: “Android”,
“platformVersion”: “8.0.0”,
“appPackage”: “com.example.myapplication”,
“appActivity”: “.MainActivity”
}
参数介绍:
platformName:平台名称,如Android等。
platformVersion:平台版本,android系统版本。
appPackage:应用包名。
appActivity:应用启动页名称。
提示:应用包名和启动页名称可以通过adb命令查到。
4、以json格式显示3区域输入的参数和值。

开始连接

一组能力输入后,点击右下角“start session”,就可以打开与设备交互的会话窗口。

注意:若出现错误:An unknown server-side error occurred while processing the command. Original error: Cannot verify the signature of ‘C:\Program Files\Appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-v4.21.1.apk’. Original error: java.lang.UnsupportedClassVersionError: com/android/apksigner/ApkSignerTool has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0 …。start session成功条件是android sdk的build-tools内存在的版本不能大于应用使用的build-tool版本。这应该也算是appium的一个bug吧。
在这里插入图片描述
当我的这个目录中还存在29.0.2,29.0.3,30.0.0时,而我所要连接的应用是用28.0.3构建的,start session就会报错。当我把29.0.2,29.0.3,30.0.0或30.0.0文件夹移除后,就可以正常启动了。

制作脚本

主要的思路就是像拍摄视频的手法一样,这里是录制操作在一个脚本代码中,然后复制脚本代码到不同的工具中去执行,从而实现App自动化。

认识界面提供的功能

在这里插入图片描述
主要先学习这上图这几个地方的功能:
1、开始录制和停止按钮
2、鼠标点击选择目标控件
3、对目标控件可执行的操作,如Tap(点击)、Send Keys(发送参数)、Clear(清楚参数)。例如,对于EditText控件,Send Keys输入的值会成为其输入内容,Clear操作会清空其输入内容。
4、左侧UI的布局结构。无需太多关注。
5、注2选中的控件的属性。无需太多关注。
6、注3操作后生成脚本代码的区域。
7、点击该按钮可切换脚本显示模式。如左侧下拉选项当前显示Java-JUnit,就会以该方式显示脚本代码,再点击一次又显示为简化代码。
其他:与注1同位置的按钮还有一个刷新按钮,作用是当APP界面改变后,而Appium的该界面未同步显示时,需要用户手动点击该刷新按钮。与注7同位置的按钮还有复制和清空按钮,复制用于拷贝脚本去其他工具执行,清空是用于为录制下一段脚本做准备。

基本制作步骤

注意都在上面的界面中用鼠标进行操作
1、开始录制
2、选择控件
3、对目标控件进行操作。
4、停止录制
5、切换脚本到具体工具可执行模式
6、拷贝脚本到其他工具中执行。

执行脚本

以Android Studio和生成Java -JUnit工具的脚本为例

1、在项目的build文件中加入仓库地址:maven { url ‘https://jitpack.io’ }。在app模块的build文件的依赖中加入implementation ‘com.github.appium:java-client:v7.5.1’。
2、在app模块的src->test->java->包名文件夹下新建一个类A,将上一步得到的脚本拷贝进去。
3、右键类A选择Run ‘A’执行脚本。
4、在Run窗口和手机中查看App自动化执行情况。

由于脚本中每个操作是连续执行,与应用实际每个操作之间有时间间隔不同,所以需要我们额外在脚本中的每个操作之间增加延时的代码。
Thread.sleep(3000);具体要延时多久根据实际操作的大概间隔时间。

脚本内容简化版和可执行版对比的例子

简化版代码:
MobileElement el1 = (MobileElement) driver.findElementById(“com.example.myapplication:id/et_imei”);
el1.click();
JAVA -JUnit可执行版代码:

import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;

public class SampleTest {
  private AndroidDriver driver;
  @Before
  public void setUp() throws MalformedURLException {
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setCapability("platformName", "Android");
    desiredCapabilities.setCapability("platformVersion", "8.0.0");
    desiredCapabilities.setCapability("appPackage", "com.example.myapplication");
    desiredCapabilities.setCapability("appActivity", ".MainActivity");
    desiredCapabilities.setCapability("ensureWebviewsHavePages", true);

    URL remoteUrl = new URL("http://localhost:4723/wd/hub");

    driver = new AndroidDriver(remoteUrl, desiredCapabilities);
  }
  @Test
  public void sampleTest() {
    MobileElement el1 = (MobileElement) driver.findElementById("com.example.myapplication:id/et_imei");
el1.click();
//增加操作间隔时间
Thread.sleep(3000);
//操作2
  }
  @After
  public void tearDown() {
    driver.quit();//注释后脚本执行完后APP不会退出。
  }
}
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 11:07:03  更:2021-07-23 11:07:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 23:49:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码