APP UI自动化测试:框架选择、环境搭建、脚本编写……全总结

1995 篇文章 51 订阅
1221 篇文章 21 订阅

在这里插入图片描述
首先想要说明一下,APP自动化测试可能很多公司不用,但也是大部分自动化测试工程师、高级测试工程师岗位招聘信息上要求的,所以为了更好的待遇,我们还是需要花时间去掌握的,毕竟谁也不会跟钱过不去。

接下来,一起总结一下APP UI自动化测试的思路吧。

开发语言选择

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

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

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

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

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

UI测试框架选择

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

Appium

  • 开源

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

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

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

  • 环境搭建较为复杂

Airtest

  • 由网易开发,只支持python语言

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

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

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

  • 对游戏测试较为友好

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

选择框架

根据实际情况选择合适的框架。

以下情况可以优先选择网易的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 使用手册。

测试环境搭建

测试电脑选择

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

测试手机选择

刚开始进行测试脚本调试时可以选择模拟器,Android模拟器可选择Gernymotion、夜神模拟器,具体参考博客Android模拟器的使用。

待整个测试项目开发完成后,建议换成真机跑自动化脚本,这样更接近真实的用户使用场景。

开发语言环境

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

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

windows环境下搭建Appium请参考其他博客,Mac下搭建Appium稍微复杂点,后续会写博客分享。

若选择Airtest框架的话,请参考官网。

脚本编写

编写测试demo

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

确定目录结构

推荐使用Page Object设计模式来开发APP UI自动化测试项目,请参考博客Page Object设计模式。

选择测试报告

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

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

Jenkins集成

根据上述步骤编写完成整个app UI自动化测试项目,且运行一段时间稳定后,就可以考虑进行Jenkins的集成,请参考博客Jenkins集成appium自动化测试(Windows篇) 或 远程Jenkins新增Mac节点。

总结

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

  • python + appium + unittest + HTMLTestRunner

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

  • python + Airtest(AirtestIDE)

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

可根据实际情况自行选择。

在这里插入图片描述

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用Python一个App自动化测试框架,首先你需要熟悉Python的基础知识,并且要熟悉基本的测试框架,比如Selenium、Appium等。你可以使用一些测试框架,如Pytest或Unittest,来编测试用例,然后可以使用Python代码来执行这些测试用例,并且自动生成测试报告。 ### 回答2: 使用Python一个App测试自动化测试框架可以具有以下几个步骤: 1. 安装所需依赖:首先,我们需要安装Python以及所需的第三方库,如Appium和Pytest。可以使用pip工具在命令行中执行"pip install appium pytest"来安装这些库。 2. 配置测试环境:接下来,我们需要配置Appium测试环境。可以下载Appium Server并安装,然后启动Appium Server。 3. 编测试脚本:使用Python测试脚本。可以使用Appium提供的API来控制App,并使用Pytest来编测试用例。例如,可以使用Appium API来启动App、点击按钮、输入文本等操作,然后使用Pytest来编断言语句,验证App的行为是否符合预期。 4. 执行测试脚本:使用命令行工具进入测试脚本所在的目录,并执行测试脚本。可以使用pytest工具来执行测试脚本,例如"pytest test_script.py"。执行过程中,Appium会连接到App并执行定义的操作,然后检查断言是否通过。 5. 生成测试报告:执行完测试脚本后,可以生成测试报告来查看测试结果。可以使用pytest提供的报告插件,如pytest-html,来生成HTML格式的测试报告。执行完测试脚本后,运行"pytest --html=report.html"命令即可生成测试报告。 以上就是使用Python一个简单的App测试自动化测试框架的步骤。通过编测试脚本、执行测试脚本并生成测试报告,可以实现对App自动化测试,并方便查看测试结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值