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

 更新时间:2021年01月28日 17:21:09   作者:up up!  
这篇文章主要介绍了使用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测试安卓真机内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JAVA提高第十篇 ArrayList深入分析

    JAVA提高第十篇 ArrayList深入分析

    这篇文章主要深入分析了JAVA提高第十篇ArrayList的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Spring Security权限管理小结

    Spring Security权限管理小结

    SpringSecurity是一个权限管理框架,核心是认证和授权,前面已经系统的给大家介绍过了认证的实现和源码分析,本文重点来介绍下权限管理,需要的朋友可以参考下
    2022-08-08
  • Spring实战之调用实例工厂方法创建Bean操作示例

    Spring实战之调用实例工厂方法创建Bean操作示例

    这篇文章主要介绍了Spring实战之调用实例工厂方法创建Bean操作,结合实例形式分析了实例工厂方法创建Bean相关配置、实现方法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • Java的LinkedHashSet源码深入讲解

    Java的LinkedHashSet源码深入讲解

    这篇文章主要介绍了Java的LinkedHashSet源码深入讲解,LinkedHashSet是HashSet的子类,而由于HashSet实现了Set接口,因此LinkedHashSet也间接实现了Set类,LinkedHashSet类属于java.base模块,java.util包下,需要的朋友可以参考下
    2023-09-09
  • 使用SpringBoot根据配置注入接口的不同实现类(代码演示)

    使用SpringBoot根据配置注入接口的不同实现类(代码演示)

    使用springboot开发时经常用到@Autowired和@Resource进行依赖注入,但是当我们一个接口对应多个不同的实现类的时候如果不进行一下配置项目启动时就会报错,那么怎么根据不同的需求注入不同的类型呢,感兴趣的朋友一起看看吧
    2022-06-06
  • Spring 开发之组件赋值的实现方法

    Spring 开发之组件赋值的实现方法

    这篇文章主要介绍了Spring 开发之组件赋值的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Spring的事件和监听器-同步与异步详解

    Spring的事件和监听器-同步与异步详解

    这篇文章主要介绍了Spring的事件和监听器-同步与异步详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 记一次用IDEA打开java项目后不能运行的解决方法

    记一次用IDEA打开java项目后不能运行的解决方法

    这篇文章主要介绍了记一次用IDEA打开java项目后不能运行的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • SpringMVC 中HttpMessageConverter简介和Http请求415 的问题

    SpringMVC 中HttpMessageConverter简介和Http请求415 的问题

    本文介绍且记录如何解决在SpringMVC 中遇到415 Unsupported Media Type 的问题,并且顺便介绍Spring MVC的HTTP请求信息转换器HttpMessageConverter
    2016-07-07
  • SpringBoot视图解析实现原理深入分析

    SpringBoot视图解析实现原理深入分析

    视图解析其实就是SpringBoot某一个controller的方法执行完成之后,它是跳转到那个页面。由于我们springboot项目默认打包为jar包,是形成压缩包的形式,而jsp又不支持压缩,所以我们SpringBoot不知JSP的,需要引入第三方模板引擎才可以处理
    2022-10-10

最新评论