app自动化测试最佳实践
众所周知,在app的UI测试方面,自动化测试可以减少人工参与、降低成本、提升测试效率。传统的自动化测试一般使用appium等工具完成,但需要有较强的编程能力,测试代码需要经常修改,一般测试人员很难搞定。一些中小公司因人手有限,再加上通常自动化测试需要会编程的高阶测试人员提前写好测试代码才能运行,测试成本可能反而变得比较高,所以很多中小企业很难真正落地app自动化测试。
最近我们公司在搞自动化测试的最佳实践,我们项目组研究了一种可以不用编程,通过配置就可以搞定的app测试方法,大大降低了自动化测试的门槛,让一些中小企业和个人也可以很容易搞定自动化测试。
测试相关业务逻辑
- 进入被测试app。
- 界面操作。点击界面进入新页面、或者滚动页面、或者其他界面操作等。
- 查看是否符合预期结果。比如是否出现预期的界面、文本等。
- 上传测试结果。
自动化测试实现
1.准备工作
这里我们使用冰狐智能辅助的自动构建搞定自动化测试,不需要写代码,通过参数配置搞定ui自动化测试
- 注册冰狐智能辅助账号
- 准备android手机一台
- 在手机中安装冰狐智能辅助app并登录
具体准备工作请点击这里查看https://aznfz.com/document/prepare
2.实现测试功能
使用冰狐智能辅助的自动构建功能实现测试功能,可以在不编写一行代码的前提下实现自动化测试。在开始前,请各位网友认真阅读下自动构建文档,以便完全理解下面的实现过程。
新建自动构建
- 在web页面「移动端」/「自动构建」中新建一个名为“自动化测试”的自动构建。
- 点击自动构建的“配置构建”按钮,开始选择模块并配置相关参数。
进入被测试app
所有业务逻辑模块都要放在业务逻辑入口模块里面
- 点击“业务逻辑入口模块”右边的编辑进入业务逻辑入口模块
- 启动并进入app可以选择“启动app”模块,在业务逻辑入口模块中添加“启动app”子模块
- 点击“启动app”模块右边的“编辑”按钮配置模块参数,以微信为例,packageName填写app的类名,tag填写启动app后的标志性tag,出现该tag就表示启动app完成,后面会给出所有自动构建的参数配置
实现测试逻辑
进入app后,可以使用自动构建的模块实现各种点击进入某个页面,滚动等逻辑。
以点击进入某页面为例讲解具体如何实现,点击微信中右下角“我”按钮进入我的页面。
点击进入某页面可以选择“点击进入页面”模块(后面会给出所有自动构建的参数配置)。
- 在“启动app”模块里面添加“点击进入页面”子模块
- 配置模块参数,clickTag填“我”,checkTag填“设置”,表示点击“我”控件,当出现“设置”时表示进入页面成功,mode选择使用控件内置点击功能
- 若进入页面失败,则系统会自动调用false参数对应的模块,这里我们选择log模块,打印下失败log,在正式场景下我们可以选择上传结果给后台等处理
- 若进入页面成功,则系统会自动执行所有子模块,这里我们选择了log模块,打印进入成功的log,在正式场景下我们可以选择上传结果给后台等处理
自动构建源码(参数)
完整的自动构建源码如下,用户可以直接在自动构建处,点击“自动化测试”自动构建右边的“配置源码”按钮,把如下配置数据粘贴进去即可。
{"type": "root","children": [{"type": "declareVar","var": [{"name": "temp","type": "normal","initType": "null","initValue": "null"}, {"name": "ret","type": "normal","initType": "null","initValue": "null"}, {"name": "view","type": "normal","initType": "null","initValue": "null"}, {"name": "viewContainer","type": "normal","initType": "null","initValue": "null"}, {"name": "item","type": "normal","initType": "null","initValue": "null"}, {"name": "index","type": "normal","initType": "null","initValue": "null"}, {"name": "data","type": "normal","initType": "string","initValue": ""}, {"name": "text","type": "normal","initType": "string","initValue": ""}]}, {"type": "main","desc": "业务逻辑入口","debug": false,"params": [],"children": [{"type": "launchApp","desc": "启动APP","debug": false,"packageName": "com.tencent.mm","tag": "txt:微信#","maxStep": "30","children": [{"type": "clickAndEnter","desc": "点击进入页面","class": 1,"debug": false,"clickTag": "txt:我#","root": "","family": [],"descendant": [],"checkTag": "txt:设置#","mode": "2","false": {"type": "log","desc": "日志","debug": false,"logType": "log","info": ["string-进入“我”页面失败"]},"failed": "","duration": "500","maxStep": "5","beforeWait": "0","afterWait": "0","children": [{"type": "log","desc": "日志","debug": false,"logType": "log","info": ["string-进入“我”页面成功"]}]}],"false": {}}]}],"desc": "根模块","debug": false
}
执行自动化测试
请按如下步骤执行自动化测试
- 开启冰狐智能辅助app调试模式
- 把自动构建编译成js脚本,在网页端「移动端」/「自动构建」找到“自动化测试”,然后点击右边的“编译”按钮,即可将自动构建编译成js脚本。
- 运行js脚本,在网页端「移动端」/「移动端脚本」找到到“自动化测试”,然后点击右边的“运行”按钮,选择设备,开始执行脚本。
- 在网页端「移动端」/「设备管理」找到设备,然后点击最右边的“LOG”按钮即可查看所有log
结束语
一个不需要编写代码的自动化测试就完成了,各位同学有任何问题,欢迎评论区留言!
app自动化测试最佳实践相关推荐
- python 自动化微信小程序_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
原标题:干货 | 微信小程序自动化测试最佳实践(附 Python 源码) 本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善, ...
- 自动化测试最佳实践(一):从纺锤模型到金字塔模型
一.当前软件开发的趋势 开篇我们先简要介绍一些近几年在企业开发中出现的重要概念,以便引入持续测试的主旨.这些概念中最重要的两个便是DevOps和微服务.两者都是目前软件开发中的最佳实践和方法论,旨在为 ...
- [置顶] 《自动化测试最佳实践》讲座总结
<自动化测试最佳实践>讲座总结 2016年11月26日 - 27日,参加了为期两天的自动化测试最佳实践.讲师是业界大牛陆宏杰.他在微软工作了5年,后来又在Photoshop工作了5年. 自 ...
- 《自动化测试最佳实践》讲座总结
<自动化测试最佳实践>讲座总结 2016年11月26日 - 27日,参加了为期两天的自动化测试最佳实践.讲师是业界大牛陆宏杰.他在微软工作了5年,后来又在Photoshop工作了5年. 自 ...
- 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...
- 微信小程序自动化测试最佳实践(附 Python 源码)
随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程序项目页面越来越多,业务逻辑也越来越复杂,全手工测试已无法满足快速增长的业务需求. 然而, ...
- 微信小程序python自动化测试_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...
本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版. 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序.微信公众号等.小程 ...
- Teams app 开发最佳实践
经常有朋友问我,teams app开发有哪些最佳实践,我看了一些别人的分享,也结合我自己的经验,总结了一下一共有这么几点: 使用 Microsoft Graph API 访问用户数据和组织数据 Mic ...
- 《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一1.3 建立自动化策略...
1.3 建立自动化策略 我们需要在不破坏现有功能的前提下发布产品的新功能特性.而且,需要尽快知道一个新的代码变动是否会引起回归测试的失败.手动回归测试在每两周的迭代后期才能给予我们反馈,以至于没有时间 ...
最新文章
- matlab调用kmeans_K_Means算法的MATLAB实现
- 【转载】图论 500题——主要为hdu/poj/zoj
- c#如何判断字符串是否含中文
- 深入React事件系统(React点击空白部分隐藏弹出层;React阻止事件冒泡失效)
- 【线段树】Serious Business(CF1648D)
- 鸿蒙系统 闹钟,华为鸿蒙2.0操作系统正式版
- hbase数据读取优化_read读取优化_HBase最佳实践_HBase开发指南_云数据库 HBase - 阿里云...
- 服务器系统格式,服务器系统编码格式
- int和Integer有什么区别(转)
- Spring 全局异常拦截根据业务返回不同格式数据 自定义异常
- Window winload.efi 文件丢失解决方法
- Win2008系统下装CTBS之前的系统组件安装向导第一篇
- latex加下划线_给latex文字加下划线和高亮显示
- eclipse安装red5插件,创建red5项目
- 艺考生冬日穿泳装秀三围
- 搜索引擎市场份额2018.3
- 十二星座html网页设计作品,十二星座的专属设计风格
- Java 密码学相关知识
- Zigbee3.0 协议特性
- 自动矢量化编译优化技术(Automatic Vectorization)
热门文章
- 存储笔记10 虚拟化
- S3C2440驱动开发(四)
- 从零开始学python数据分析 罗攀_从零开始学Python数据分析(视频教学版)
- 四川大学计算机学院学科评估,四川大学第四轮学科评估结果:58个学科上榜,其中A类学科16个...
- 国际数据挖掘顶会 KDD 2019 研究方向亚军论文《Optimizing Impression Counts for Outdoor Advertising》解读
- Mocha Pro:工具栏
- linux文件名排序规则,Linux sort 排序使用详解
- 小米8手机如何安装fiddler证书
- python拟合sir模型_Python—拟合模型
- 超好用的PDF删除技巧!