一个颠覆传统的自动化测试工具,你必须值得拥有

简介: 做为一名一线的Android开发者,在实际的项目开发中,最需要哪些工具,来提升开发效率,自己是最清楚的,基于实际,而拓展有用的辅助工具,也一直是自己平时所研究的方向。

如何打造一个简单,便捷,又非常容易上手的自动化测试工具,一直是自己最近在研究的方向,关注我的读者,可能有所了解,在此之前,自己陆续推出了,自动化代码生成工具,自动化规范检查工具,而自动化测试工具,则是自动化系列的第三个家族成员,做为一名一线的Android开发者,在实际的项目开发中,最需要哪些工具,来提升开发效率,自己是最清楚的,基于实际,而拓展有用的辅助工具,也一直是自己平时所研究的方向。


Android端的自动化测试工具,市场上还是颇多的,像Espresso,UI Automator,Appium等,当然了也有一些三方的自动化测试平台,如,Testin,腾讯优测等等,无论框架还是三方,无不透露着一些局限的问题,比如收费,比如入手困难,比如需要写入大量的脚本信息,这些所谓的问题,阻挡了一批又一批想要实现自动化测试的开发者,而最终无奈只能人工的点点点操作。


面对如此的问题,简单,便捷,容易上手,便成了工具的宗旨,而基于此,自己在不断的摸索之后,终于1.0.0版本的自动化测试工具可以面世了,这个工具最突出的一个特点就是,简单,特别简单,哪怕你是一个小白,毫无开发经验,毫无测试经验,也能实现特定功能的特定测试。


工具其实就是一个App,下载地址在文章后面,按照自己的风格,我设计了一个黑色系,起了一个小A自动的名字,名字没有其他的特殊含义,纯属瞎起的,安装之后,如下图所示。



打开应用之后,就一个单独的页面,一个孤零零的按钮,非常的简洁,我估计大家这辈子,也很难见到一个如此简洁的应用。



对于这样的一个App,很多读者估计都懵了,这是啥玩意啊,哪来的自动化,别慌,我们点击之后就会别有洞天,但是点击之前,有一个前提条件需要做,那就是,保证你的手机和你的电脑处于同一个网络,因为接下来,所有的执行动作,是依赖于电脑端完成的,当然你也可以通过其他设备。


点击之后,我们就会发现,需要我们开启无障碍功能权限,因为此工具是用AccessibilityService来实现的,这个权限是必须要授权的,我们一步一步授权即可。




权限授权之后,回到应用,我们再次点击启动服务,就会看到如下效果:



根据提示,我们直接把地址,在电脑端的浏览器中输入即可。



没错,也是一个黑色风格,我设计了左中右三块,左边是用来展示当前手机中安装的所有App,中间则是我们程序编辑的区域,右边是当前程序执行的状态,也就是成功和失败,别看这个页面相对简单,但也苦了一番斟酌,想法很简单,但要付出实际的效果,真的不太容易。

左侧区域,大家可以寻找或者进行检索想要测试的应用,直接选择就行,选择需要测试的应用之后,就进入到了中间最重要的区域,就是程序编辑,相对于市场上比较复杂的脚本设计,此自动化测试工具,就无比的简单了,大家可以点击右侧的文档,里面有详细的程序编辑说明。



我把图片单独选取一下。



大家没看错,1.0.0版本就这么多东西,而且支持中文编辑,比如你想点击页面中的某一个按钮,直接就可以编辑:点击+你想要的点击的文字,比如,点击登录:


点击登录


比如点击我的

点击我的


当然,也有简写,点击的简写就是ck,上边的就可以简写成:

ck登录
ck我的


除了点击文字之外,你也可以,通过控件的id进行点击,或者通过页面的坐标点进行点击。文档中都写的很清楚,其他的暂时不罗列了,大家按照文档说明,书写即可,一定要注意,严格按照文档来,不可自己随意编写,负责不能实现你想要的效果。


中间的程序编辑区域,最上边是当前你选择的应用的脚本列表,考虑到多个应用的测试,这里对每个应用,你都可以编写不同的程序,然后进行添加,删除和修改,底部默认展示创建程序信息,比如我选择支付宝,创建一个。



点击创建之后,顶部就会展示你刚才创建的一条程序,并一直做为保存,一个应用的执行程序,可以有无限个,也就是说你想创建几个就创建几个。



点击你刚才创建的程序,底部的按钮就会发生变化,可以对当前脚本进行,删除,更改和运行。



点击运行,你会发现程序已经开始运行了……



并且,你的手机已经打开了支付宝,并且点击了底部我的,我做了一个gif图,大家可以更加直观的看到效果,我把网页缩小一点,把手机投屏到电脑右侧。



当然了你可以编写很多你想要实现的应用程序,比如针对我们公司的欧拉项目,我想要实现,点击我的,进入到我的订单,未登录下,进入登录页面,选择密码登录,然后输入账号和密码,同意用户协议,然后进行登录,那么就可以如下操作。



执行状态中,会进行当前程序的判断,成功会显示绿色,错误会展示红色,目前底部的执行程序保存暂时还没有实现,后续会加上,目前初步打算会把执行的程序结果进行存储到文件里,这样一个程序的执行结果,就可以统一分析后,反馈至开发人员那里。


程序的编写,你可以实现很多要实现的功能,在于你实际的业务,当然你也可以薅羊毛的操作,比如电商平台抢东西等,都是可以实现的。1.0.0的版本,还有很多的不足,很多逻辑上也没有及时的修正,很多状态下也没有很好的判断,后续的版本我会一点一点的进行优化,也希望大家能够提出宝贵的意见。


App体验下载:

https://www.vipandroid.cn/ming/a/apk.html?a_apk_id=198


这里有一个需要注意的,那就是,在使用的过程中,如何获取控件的id以及当前的坐标信息呢?这个很简单,有Android SDK的话,你可以直接到sdk的tools目录下,直接双击uiautomatorviewer.bat即可,没有的话,大家可以去下面的地址进行下载

https://www.androiddevtools.cn/


SDK的tools目录:



双击之后



手机USB连接电脑后,点击捕获你的手机当前页面,就可以获取到你想要的任何信息了。



关于源码以及如何实现的,目前我还在整理,准备下一篇开源出来,这篇暂时先到这里吧。

相关文章
|
20天前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
42 3
|
24天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
46 4
|
23天前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
48 2
|
27天前
|
监控 虚拟化 云计算
从物理到云:使用自动化工具简化服务器迁移流程
【10月更文挑战第4天】随着云计算的快速发展,越来越多的企业选择将物理服务器迁移到云环境以提高效率和降低成本。本文详细介绍了使用自动化工具简化从物理到云的服务器迁移流程的技术实现细节,并提供了代码示例。
80 6
|
4天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
10 1
|
28天前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
34 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
19天前
|
jenkins 测试技术 持续交付
提升软件测试效率的实用技巧与工具
【10月更文挑战第12天】 本文将深入探讨如何通过优化测试流程、引入自动化工具和持续集成等策略,来显著提高软件测试的效率。我们将分享一些实用的技巧和工具,帮助测试人员更高效地发现和定位问题,确保软件质量。
34 2
|
22天前
|
运维 关系型数据库 MySQL
自动化运维工具Ansible的实战应用
【10月更文挑战第9天】在现代IT运维领域,效率和可靠性是衡量一个系统是否健康的重要指标。自动化运维工具Ansible因其简洁、易用的特性,成为了众多企业和开发者的首选。本文将通过实际案例,展示如何利用Ansible进行日常的运维任务,包括配置管理、软件部署以及批量操作等,帮助读者深入理解Ansible的应用场景及其带来的效益。
|
23天前
|
人工智能 运维 监控
自动化运维:从脚本到工具的演变之路
【10月更文挑战第8天】在数字化时代的浪潮中,运维不再是简单的硬件维护,它已经演变成一场关于效率、稳定性和创新的技术革命。本文将带您领略自动化运维的魅力,从最初的脚本编写到现代复杂的自动化工具,我们将一探究竟,看看这些工具如何帮助运维人员简化日常任务,提升工作效率,并最终推动业务发展。
|
28天前
|
机器学习/深度学习 运维 监控
提升运维效率:自动化工具与实践的融合
【10月更文挑战第3天】 在当今信息技术迅猛发展的时代,运维作为保持系统稳定性和性能的关键角色变得越来越重要。本文将探讨如何通过结合自动化工具和最佳实践来优化运维流程,实现高效、可靠的运维管理。从基础监控到高级自动化,我们将一步步引导您了解如何搭建和维护一个高效的运维体系。
29 3