• 0
  • 0
分享

首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去。接下来,一起总结一下APP UI自动化测试的思路吧。

开发语言选择

通常用于自动化测试的编程语言有:Python、Java、Javascript、Ruby、C#、PHP等。一般我们会选择自己熟悉的编程语言来编写自动化脚本,但对于编程基础基本为0的童鞋(或者专注于做自动化测试的童鞋),推荐学习使用Python。

相对于其他语言,Python做自动化测试有以下优点:

  • 对于初学者来说,Python语法简洁,可读性强,易于学习;

  • 有强大的第三方库,编写脚本效率更高;

  • Python中的Pytest自动化测试框架是目前最流行的测试框架之一。

测试框架选择

选择编开发语言之后,我们需要选择UI测试框架。目前较为主流或者使用较多的APP UI自动化测试框架有Appium、Airtest等。

1、Appium

  • 持续维护中且开源

  • Appium server支持在Windows、macOS、Linux上运行

  • 支持多种主流编程语言,如Python、Java、Javascript、Ruby等

  • 支持Android、ios、H5自动化测试(集成了UiAutomator、UiAutomation框架)

  • 环境搭建较为复杂

2、Airtest

  • 由网易开发(官方文档),只支持python语言

  • 提供集成Airtest与Poco两个测试框架的强大的IDE,对新手很友好

  • 集成基于图像识别的UI自动化测试框架airtest,即使不懂代码也能编写自动化脚本

  • 跨平台,可对Windows、Android和iOS应用软件进行自动化测试

  • 对游戏测试较为友好

  • Airtest与Poco本质上是python的两个第三方库,测试环境搭建没有Appium那么复杂

3、选择框架

根据实际情况选择合适的框架。以下情况可以优先选择网易的Airtest (Airtest官网):

  • 无编程基础

  • 游戏测试

  • 测试场景较为单一(Appium相对来说较为笨重)

  • 支付宝小程序自动化(博主目前使用Airtest集成的Poco框架做支付宝小程序自动化测试)

以下情况建议选择Appium:

  • 测试场景比较复杂(如需要多台手机批量测试)

  • 测试脚本语言非Python(Airtest目前只支持Python)

单元测试框架选择

区别于上面所说的UI测试框架,单元测试框架用于加载测试用例、执行测试用例、断言、输出测试结果等。

不同的开发语言有各自对应的单元测试框架,如Java有JUnit、TestNG、Robot等,Python有unittest、pytest等。博主主要使用Python做自动化测试,所以这里只针对Python单元测试框架做说明。

python主流的单元测试框架:

  • unittest,Python自带的单元测试框架

  • pytest,基于unittest开发,易用性好,信息更详细,插件众多

  • robot framework,基于Python的关键字驱动测试框架,有界面,自带报告及log,功能完善,清晰美观

这里强烈推荐使用pytest,功能强大且容易上手,官方文档为英文,中文可参考Pytest 使用手册)。

测试环境搭建

1、测试电脑选择

有条件的话建议使用Mac机器专门用于UI自动化测试,因为ios app ui自动化只能在Mac机器上进行。

2、测试手机选择

刚开始进行测试脚本调试时可以选择模拟器,Android模拟器可选择Gernymotion、夜神模拟器,待整个测试项目开发完成后,建议换成真机跑自动化脚本,这样更接近真实的用户使用场景。

3、开发语言环境

建议安装python 3以上的版本,官方已经停止对python2版本的更新维护。

4、UI自动化测试框架环境搭建

windows环境下搭建Appium请参考appium环境搭建,Mac下搭建Appium稍微复杂点,后续会分享。若选择Airtest框架的话,请参考官网。

脚本编写

1、编写测试demo

为了验证整个测试环境是否搭建成功、是否能跑通用例,一般我们需要先编写简单的测试脚本并执行,通过则说明整个环境搭建成功。
2、确定目录结构

推荐使用Page Object设计模式来开发APP UI自动化测试项目请

3、选择测试报告

不同的开发语言、不同的单元测试框架可选用不同的测试报告。在python中,unittest框架使用HTMLTestRunner或BSTestrunner生成测试报告,Pytest框架使用pytest-html生成报告或通过allure定制测试报告。

以上步骤完成后,继续往测试项目里新增测试用例便可。

Jenkins集成

根据上述步骤编写完成整个app UI自动化测试项目,且运行一段时间稳定后,就可以考虑进行Jenkins的集成。

总结

总结APP UI自动化可使用以下几种实现方式:

  • python + appium + unittest + HTMLTestRunner

  • python + appium + pytest + pytest-html / allure

  • python + Airtest(AirtestIDE)

  • python + Poco + pytest + pytest-html / allure


作者:山海
链接:https://zhuanlan.zhihu.com/p/488561584

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   从以下三个方面来说明测试分析:测试分析是什么测试分析的重要性测试分析的常用方法测试分析是什么  1、测试分析是测试人员对待测功能或待测系统在分析其测试需求后,思考如何去测试这个功能或系统,然后转化为测试点的过程。  2、测试分析体现了测试人员的测试思维。通过测试分析的产出物(测试分析文档)可使项目组其他人员清楚的了解待测功能或系统是如何被测试的。  3、测试分析包含两个过程:一是对待测试系统或功能的需求了解。二是思考如何去测试这个系统或功能。  测试分析的重要性:  1、测试分析可以帮助测试人员梳理测试功能,使测试更加充分和全面。  2、测试分析为测试用例的编写提供了依据。避免了测试用例编...
            0 0 3018
            分享
          •   应届生,没有实际项目经验怎么破?  面试的过程并不为为了显示面试官技术有多牛,也不是为了体现他们公司有多么难进而是考察你的能力和招聘需求是否相匹配,进而评估你能否满足工作需求,甚至实现更多的岗位期待。  弄清楚了这个核心,那么就只需要把控好两方面的内容:  1、自己的技能水平可以满足招聘需求  2、表达能力OK  围绕上面的核心,咱们来具体的聊一下:  首先来说,目前的行业招聘现状是:  ·测试行业底层在不断洗牌  · 初级人员薪资一直维持不变(相当于降薪)  · 已经不再是公司疯狂招人的阶段  所以就导致了明显的两极分化,大厂倾向于直接招测试开发,测试团队进一步精简,...
            0 0 403
            分享
          • 北京时间9月7日早间消息,据报道,巴西政府下令,要求苹果停止在该国销售没有电池充电器的iPhone。此外,巴西司法部还对苹果处以1227.5万雷亚尔(约合238万美元)的罚款,并下令停止销售iPhone12及更新机型。对此,苹果表示将上诉,并称这样做能减少浪费,对环境有利。苹果在邮件声明中表示:“苹果会考虑自身所做一切对人和地球的影响。充电器用到了大量的锌和塑料,从包装盒开始就将它剔除能减少200万吨碳排放,相当于每年从公路上移除50万辆汽车。”2020年苹果宣布新iPhone销售时包装盒内不再搭配充电器,一些客户不满,他们认为苹果这样做是为了降低成本,苹果则说全球已经有几十亿USB-A充电器...
            0 0 912
            分享
          • 案例设计需求有一个ATM取款系统,现对于取款功能进行了需求变更:只能取面额是100元(如取500,输出5张100元)。现在功能修改为,可以取面额是10元、50元和100元的,其余功能不变,用户界面也没有任何变化,取款原则为“最优吐钞法”,有大额先吐大额,请根据需求变更进行案例设计。参考测试用例大额优先刚好整百的金额,吐出N张100元的刚好为50元,吐出1张50元刚好是50以内的整10元,吐出N张10元取款金额是N百,超过50元,吐出N张100元,1张50元,(M-5)张10元(例如380元,会吐出3张100元,1张50元,8-5张10元)如果是几十元,同时超过50元。那么会吐出1张50元,M-...
            0 0 859
            分享
          •   做Web自动化的小伙伴们都知道Selenium,可以全面模拟各种网页上的键盘、鼠标、事件。  Selenium虽好,但是定位并不容易,不论CSSselector,还是XPATH,学习曲线也还是有的。  有没有更简单的Web自动化测试工具?  Selenium不好学?那你可能需要的是Helium   有!老司机今天给大家介绍一个比Selenium更简单的自动化测试工具——Helium。  Helium是Python的一个类库,需要事先用pip方式安装。  pip install helium      确保Chrome或者FireFox浏览器已经安装。不需要配合...
            2 2 1820
            分享
      • 51testing软件测试圈微信