• 1
  • 1
分享

  众所周知,Appium是移动端界面自动化中最常用的开源框架之一,它能够支持 iOS 平台和 Android 平台上app及Web应用测试,支持Mac,Windows操作系统,并且支持多种语言,Java、Python、PHP、C#、js等,让你不受编程语言的束缚 。下面我将展示Appium框架应用测试的一个具体实例。

  一、框架环境安装

  环境搭建需要具备以下软件,如下表:

Y1.png

  环境配置略微复杂些,涉及到多个软件的安装及参数配置等,可参考网上Appium搭建文文档,环境搭建不属于本篇文章的重点,不再赘述。

  二、测试流程操作

  1、安装APK

  打开模拟器,安装好自己要测试的app包 。

Y2.png

  2、启动

  打开Appium-desktop,启动服务,提示the server is running,即为启动成功。

Y3.png

Y4.png

  3、服务参数配置

  接下来就要进行服务参数配置了,选择本地服务,详细配置参数如下:

  ·platformName:平台的名称(iOS, Android, or FirefoxOS)

  ·platformVersion:移动设备的系统版本号,7.1, 4.4

  ·deviceName:设备名称

  ·appPackage:要启动的包名称

  ·appActivity:要启动的Activity(应用入口)

  以上这些服务参数配置均可通过命令在控制台查看到,首次配置后可以进行下保存,以便下次再次使用方便。

Y5.png

  4、脚本录制操作

  点击start session后,就进入到脚本录制和元素定位的页面了,如下图。在这个页面我们可以根据测试需要进行元素的点击,输入文本等操作,形成一个测试脚本(可以指定语言)。

Y6.png

  在模拟器操作后,点击appium-desktop界面的刷新按钮,可以将界面同步到操作屏上点击录制按钮,在操作截屏上点击抓取元素,中间App Source显示界面xml代码,右边是元素的具体信息,Recorder上展示录制代码。左边操作截屏上点击元素不会真正的点击,只是选中的元素,右边会展示元素的定位,点击右边的tap才会真实点击,点击sendkeys表示输入文本。

  我在此进行了输入框的点击,输入,点击“搜索”按钮操作,且将操作的脚本都录制了下来,选用的是Java语言。

  5、脚本编写

  打开IDEA,新建一个maven工程,然后将上一步骤录制的脚本copy到脚本的“sampleTest”部分,复制过来录制的脚本代码有时候可能需要再修改下。上面的setUp类是app的启动参数配置,这部分直接修改下就可以。另外,在pom文件中别忘了引入相关依赖。

Y7.png

Y8.png

  6、脚本执行

  执行脚本,可看到模拟器上会执行刚才录制的操作回放,最后执行通过后,脚本会展示passed,同时模拟器回放完毕。

Y9.png

  三、测试总结   

  通过Appium自动化测试的实例运行,我们也会对Appium测试框架有个更深刻的了解,其实基础的案例运行并不难,可能难点还是在后续你的案例设计上。我在实际操作中也有了很多弯路,包括环境搭建时个软件版本之间不兼容、脚本执行时初始化界面和运行不一致等等,但最终这些都是可以解决的。希望大家都能够亲自操作下,从框架搭建到脚本执行,一定会有很多的收获。



作者:冀欣

来源:51Testing软件测试网原创


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   51Testing软件测试网正在收集测试行业问卷结果,如果你也想为测试行业的前景助力,就点击下方的链接提交答案吧,还有精美礼品等你拿(测试课程五选二)链接:http://vote.51testing.com/  数据迁移的需求背景  公司内部出现业务先合并、新旧系统替换、业务扩大需要进行数据库分表等情况下,就需要涉及到数据迁移。对应的常见的迁移场景有:  1、需要将两个系统的部分数据统一从A数据库读取,a数据库和b数据库通过指定字段进行关联的情况。  2、直接废弃旧的系统,将旧系统的数据迁移到新系统,后续仅维护新系统。  本文主要总结分享比较场景的数据迁移场景,业务线合并,2个系统的用户数...
            0 0 1390
            分享
          •   性能测试中,CPU和内存是关注最多的两个性能指标。以我行应用最多的系统架构(WAS+Oracle)来说,CPU使用率高的问题多发生于数据库,比如索引不当引发的表扫描、绑定变量使用不当引发的硬解析、连接池使用不当引发的频繁建立断开连接,这些都会导致数据库服务器CPU使用率高。  内存问题则多发生于应用服务器。部署在WAS平台的Java应用,经常发生的问题是JVM堆内存溢出。产生该问题的原因有很多:  ·由环境引发的,虚拟机物理内存不足;  ·由参数配置引发的,JVM堆内存设置过小;  ·由应用程序引发的,内存泄露,错误使用大对象等等。  在实际性能测试过程中选择监控指标时,对JVM堆内存的监...
            14 14 899
            分享
          • 接口测试接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。为什么介绍接口测试?接口常被开发挂在嘴边,在开发过程中无处不在,但对于测试人员来说,它又如此朦胧,无形无色无味,难以触碰。相信这也是测试人员比较难理解的一种测试类型。查询的大部分资料都是介绍一堆模糊的概念。所以,我打算以浅薄的认知来介绍接口测试,当然会举例子。我所知道的接口测试我所了解的模块接口测试大体分为两类:模块接口测试和web接口测试。模块接口测试      &...
            0 0 424
            分享
          • 1、现在在做功能测试,一般都是把软件界面和该软件的逻辑测试一下,工作大半年了想往性能测试方向转,感觉很多东西要学习,但是不知道从哪下手,请大神指点。有这种想转的思想很好。相信有很多和你同样情况的同学,同时,半年的经验一下子转过来是不可能的。首先,我建议在工作过程中在积累一年左右。主要是在做功能测试的同时,你可以自己搭建测试环境,加深对整个系统的理解,这个过程就在提高自己的学习能力和打下知识基础。被测项目用了哪些技能可以自己多多加深学习和理解。也就是在项目中自己更多的学习,利用工作中的测试项目充分学习。其次,学习一款性能测试工具。我本人不建议上来就学那些操作系统、数据库等知识。毕竟先从工具入手是...
            1 0 1754
            分享
      • 51testing软件测试圈微信