使用JAVA+Maven+TestNG框架实现超详细Appium测试安卓真机教程

前言:前段时间做了selenium的学习和实践,有点意犹未尽,所以自己就又学了下Appium的使用,因为这一套东西在16年已经停止维护了,不管实现还是设计上都不是很容易,也踩了很多坑,现在在此记录下大概过程。后续有时间再完善手册。

一、准备

安装SDK,配置环境变量

链接: https://pan.baidu.com/s/1g2QaWjdfg6Txa0gZf9kk3A

提取码: 8aaz

windows配置环境SDK变量
我的电脑右键->属性

点击高级系统设置

点击环境变量

点击新建按钮,变量名输入ANDROID_HOME,变量值输入解压后的SDK目录

path变量加入图中两个路径

打开CMD命令,输入adb后回车 展示如下内容即可

在cmd中输入android并回车,会自动打开android SDK管理器

下载Appium服务,并启动

链接: https://pan.baidu.com/s/1Tf_33ZhbMwBmn0HKL-Z8UQ

提取码: s5qa

双击桌面下载好的Appium.exe程序,启动Appium服务


出现上图后说明已启动成功

二、代码实现

安装JDK

官方下载
安装过程比较简单,这里就不做详细的赘述了。
之后设置环境变量JAVA_HOME

编辑Path,添加bin目录

验证jdk安装,打开cmd输入java,回车。出现下面提示后即配置成功

设置Capability

// 1.添加配置,创建DesiredCapabilities对象
  DesiredCapabilities des = new DesiredCapabilities();
  // 指定测试设备的名称
  des.setCapability("deviceName", Utils.getParam("deviceName"));
  // 添加操作系统配置
  des.setCapability("platformName", Utils.getParam("platformName"));
  // 添加操作系统版本设置
  des.setCapability("platformVersion", OpenApp.getVersion());
  // 连接的物理设备的唯一设备标识
  des.setCapability("udid", OpenApp.getDeviceName());
  // 不需要再次安装
  des.setCapability("noReset", Boolean.valueOf(Utils.getParam("noReset")));
  // 设置apk的安装路径
  des.setCapability("app", apkDir.getAbsolutePath());
  //指定想要测试应用的包名
  des.setCapability("appPackage", Utils.getParam("appPackage"));
  // 指定想要测试应用的入口
  des.setCapability("appActivity", Utils.getParam("appActivity"));
  // 支持中文输入
  des.setCapability("unicodeKeyboard", Boolean.valueOf(Utils.getParam("unicodeKeyboard")));
  des.setCapability("resetKeyboard", Boolean.valueOf(Utils.getParam("resetKeyboard")));
  // 没有新命令时的超时时间设置
  des.setCapability("newCommandTimeout", Utils.getParam("newCommandTimeout"));
  // 跳过检查和对应用进行 debug 签名的步骤
  des.setCapability("nosign", Utils.getParam("nosign"));
  //自动点击弹窗如:是否允许读取文件权限
  des.setCapability("autoGrantPermissions",Boolean.valueOf(Utils.getParam("autoGrantPermissions")));
  //安卓版本较新,使用uiautomator2
//  des.setCapability("automationName", Utils.getParam("automationName"));

指定appium通讯的地址,将相对应的配置传入到驱动运行testNG.xml文件,执行用例(代码会先检查手机有没有连接,没有连接手机不运行,手机端有没有安装要测试的程序,没有的话先安装,安装完成后启动手机app程序,再执行用例),执行完成后会显示执行结果,也可以设置失败截屏,方便我们排查和分析具体失败原因

看失败截图,很显然现在失败的原因是因为网络原因,ui没有加载完成,元素未找到

代码中抛异常的地方也是如此

SDK下载:

链接: https://pan.baidu.com/s/1g2QaWjdfg6Txa0gZf9kk3A

提取码: 8aaz

后面也做了定期执行的程序,包括自动发送邮件,省心。因为写的比较仓促,格式和内容都比较简陋,小白可以做参考(大佬勿喷!)

到此这篇关于使用JAVA+Maven+TestNG框架实现超详细Appium测试安卓真机教程的文章就介绍到这了,更多相关JAVA+Maven+TestNG框架实现Appium测试安卓真机内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • idea中创建maven的Javaweb工程并进行配置(图文教程)

    学完maven后,可以创建maven的javaweb工程,在创建完成后还需要一些配置,下面来说下具体步骤,在这里我创建的是一个模块,创建web项目的方式和创建模块一样 1.创建一个模块,点new-Module 2.选择maven,然后把对勾打上,选骨架,一定要选择第二个webapp骨架,如图 3.设置GroupId和ArtifactId,ArtifactId最好设置的和模块名称一样 4.设置maven的相关信息,如图 5.设置模块的名称和存储位置 6.点击完成,当出现红框中的内容的时候表示创建成

  • JAVA maven项目使用钉钉SDK获取token、用户

    本文介绍了JAVA maven项目使用钉钉SDK获取token.用户,分享给大家,具体如下: 将SDK放一个文件里,记住文件地址.D:\eclipse-workspace\项目名\模块名\lib win+r cmd 敲下面的命令: [进入相应盘]   D: [进入文件地址]   cd D:\eclipse-workspace\项目名\模块名 [运行命令]  mvn install:install-file -DgroupId=com.dingtalk.api -DartifactId=top-a

  • Maven打包jar生成javadoc文件和source文件代码实例

    这篇文章主要介绍了Maven打包jar生成javadoc文件和source文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 官方文章 : https://maven.apache.org/plugin-developers/cookbook/attach-source-javadoc-artifacts.html 生成文件的样本 attach-source-javadoc |-- pom.xml |-- src\ `-- target

  • 使用JAVA+Maven+TestNG框架实现超详细Appium测试安卓真机教程

    前言:前段时间做了selenium的学习和实践,有点意犹未尽,所以自己就又学了下Appium的使用,因为这一套东西在16年已经停止维护了,不管实现还是设计上都不是很容易,也踩了很多坑,现在在此记录下大概过程.后续有时间再完善手册. 一.准备 安装SDK,配置环境变量 链接: https://pan.baidu.com/s/1g2QaWjdfg6Txa0gZf9kk3A 提取码: 8aaz windows配置环境SDK变量 我的电脑右键->属性 点击高级系统设置 点击环境变量 点击新建按钮,变量名

  • Java持久层框架Mybatis入门详细教程

    mybatis介绍 mybatis它是轻量级持久层框架,由ibatis演化而来.它自动连接数据库,将数据库的结果集封装到对象中POJO. POJO: 一个简单的Java类,这个类没有实现/继承任何特殊的java接口或者类,不遵循任何主要java模型,约定或者框架的java对象.在理想情况下,POJO不应该有注解. JavaBean: JavaBean是可序列化的,实现了serializable接口 具有一个无参构造器 有按照命名规范的set和gett,is(可以用于访问布尔类型的属性)方法 My

  • idea搭建ssh框架的超详细教程

    目录 一.创建项目 1.new->project出现如下 2.构建目录结构 二.Struts2 1.首先引入struts2依赖 2.WEB-INF下web.xml文件配置 3.在resources下添加struts.xml文件 4.在action包下创建TestAction类,为了测试在webapp下新建了test.jsp页面 5.部署 6.启动测试 三.Spring 1.首先引入spring相关依赖 2.在web.xml中添加listener,并在resources下新建spring,xml文

  • Java中批处理框架spring batch详细介绍

    spring batch简介 spring batch是spring提供的一个数据处理框架.企业域中的许多应用程序需要批量处理才能在关键任务环境中执行业务操作. 这些业务运营包括: 无需用户交互即可最有效地处理大量信息的自动化,复杂处理. 这些操作通常包括基于时间的事件(例如月末计算,通知或通信). 在非常大的数据集中重复处理复杂业务规则的定期应用(例如,保险利益确定或费率调整). 集成从内部和外部系统接收的信息,这些信息通常需要以事务方式格式化,验证和处理到记录系统中. 批处理用于每天为企业处

  • 2021最新Java JDK1.8的安装超详细教程

    目录 一.JDK下载 1.官网下载 2.网盘下载 二.安装步骤 1.开始安装: 2.修改默认目录,点击下一步. 3.会提示安装jre,同样修改默认目录,新建目录名如图: 4.继续点击下一步,点击关闭,完成安装. 三.搭配环境变量 1.Path变量 jdk1.8又称jdk8.0,是目前相对比较稳定的版本,不建议下载最新的jdk版本,因为最新版的jdk不稳定,在Java的学习中可能会出现各种各样的问题. 一.JDK下载 1.官网下载 点击官网下载地址往下划,找到自己电脑相对应的JDK,点击下载. 如

  • Java迭代器与Collection接口超详细讲解

    目录 关于迭代器你都知道什么? 什么是迭代器? 迭代器的4个API 如何使用迭代器? Collection集合接口知多少? 为什么不使用数组而是集合? Collection接口的API都有什么? AbstractCollection类知多少? 关于迭代器你都知道什么? 什么是迭代器?   所谓迭代的意思就是交换替代,迭代器并不是一种数据结构或者集合,而是可以过迭代器中的方法逐个访问集合中的每个元素的一种方法.提到迭代器最重要的就是Iterator接口,所有想要使用迭代器迭代的结构都需要实现或者继

  • pytest测试框架+allure超详细教程

    目录 1.测试识别和运行 2.参数化 3.测试报告美化-allure 1.测试识别和运行 文件识别: 在给定的目录中,搜索所有test_.py或者_test.py文件 用例识别: Test*类包含的所有test_*的方法(测试类不能有__init__方法) 不在类中的所有test_*方法 pytest也能执行unit test写的用例和方法 运行方式1.pycharm页面修改默认的测试运行方式settings页面,输入pytest,修改Default test runner 2.右键执行pyth

  • Java的Spring框架中AOP项目的一般配置和部署教程

    0.关于AOP 面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是Spring框架中的一个重要内容.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP是OOP的延续. 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等. 主要的意图是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过

  • Java的MyBatis框架中对数据库进行动态SQL查询的教程

    其实MyBatis具有的一个强大的特性之一通常是它的动态 SQL 能力. 如果你有使用 JDBC 或其他 相似框架的经验,你就明白要动态的串联 SQL 字符串在一起是十分纠结的,确保不能忘了空格或在列表的最后省略逗号.Mybatis中的动态 SQL 可以彻底处理这种痛苦.对于动态SQL,最通俗简单的方法就是我们自己在硬编码的时候赋予各种动态行为的判断,而在Mybatis中,用一种强大的动态 SQL 语 言来改进这种情形,这种语言可以被用在任意映射的 SQL 语句中.动态 SQL 元素和使用 JS

  • Java集合框架超详细小结

    目录 一:Collection集合 1.1集合概述: 1.2集合架构 1.3Collection集合常用方法 二:迭代器Iterator 2.1Iterator接口 2.2Iterator的实现原理: 2.3增强for() 2.4迭代器注意事项 三:泛型 3.1泛型概述 3.2泛型的优缺点 3.3泛型的定义与使用 泛型方法 泛型接口 3.4泛型的通配符 通配符高级使用-----受限泛型 四:Java常见数据结构 4.1栈 4.2队列 4.3数组 4.4链表 4.5红黑树 五:List集合体系 5

随机推荐