随着移动互联网的飞速发展,自动化测试在移动应用领域的重要性日益凸显。无论是功能测试还是性能测试,自动化都能显著提高测试效率,减少人为错误。今天,我们将详细介绍如何使用Appium结合Assists框架,在Android设备上实现自动化操作,特别是微信登录这一日常场景。
首先,确保你的系统已经安装了Node.js,版本需大于等于18.0.0。安装好Node.js后,通过npm安装Appium:
npm install -g appium
验证安装版本:
appium -v
你需要安装Android SDK、Java JDK以及uiautomator2驱动。如果还没有配置好Android开发环境,可以自行搜索相关教程进行配置。
安装uiautomator2:
appium driver install uiautomator2
启动Appium服务器:
appium server --allow-cors
通过命令行adb devices
查看设备是否已连接。然后,使用浏览器打开Appium Inspector,并输入以下参数:
{
"platformName": "Android",
"appium:deviceName": "Android Emulator",
"appium:automationName": "UiAutomator2"
}
点击“Start Session”开始自动化脚本的编写。
连接到Android设备,确保设备已连接。使用浏览器打开Appium Inspector,输入上述JSON参数,点击“Start Session”。
在Appium Inspector页面中,你可以看到设备的UI结构。通过Appium的API,你可以获取这些UI元素的节点信息。
例如,获取微信登录页面中的账号输入框和密码输入框的节点ID:
// 获取账号输入框节点ID
String accountInputId = "com.tencent.mm:id/d98";
// 获取密码输入框节点ID
String passwordInputId = "com.tencent.mm:id/d986";
创建一个新的Android项目,并在build.gradle
文件中添加必要的依赖:
dependencies {
implementation "com.github.ven-coder.Assists:assists-base:v3.2.11"
}
在AndroidManifest.xml
中注册服务:
<service android:name="com.ven.assists.service.AssistsService" android:enabled="true" android:exported="true" android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
<intent-filter>
<action android:name="android.accessibilityservice.AccessibilityService"/>
</intent-filter>
<meta-data android:name="android.accessibilityservice" android:resource="@xml/assists_service"/>
</service>
继承StepImpl
类,实现具体的自动化步骤。例如,获取账号输入框并输入账号:
class WeChatLoginAuto extends StepImpl {
@Override
public void onImpl(collector: StepCollector) {
collector.next(stepTag = 1);
// 通过id查找并使用第1个节点元素输入账号
AssistsCore.findById("com.tencent.mm:id/d98").firstOrNull()?.setNodeText("x69398");
return @nextStep.get(2);
}
}
依次实现输入账号、密码和点击登录的步骤。
在执行前,确保关闭Appium服务:
StepManager.execute(WeChatLoginAuto::class.java, stepTag = 1, begin = true);
最终效果:当运行这段代码时,它会自动打开微信登录页面,输入账号和密码,并完成登录过程。这不仅大大提高了测试效率,还减少了人为错误的可能性。
通过本文的介绍,你学会了如何使用Appium和Assists框架在Android设备上实现自动化操作。无论是日常功能测试还是性能测试,掌握这些技能都将使你的工作更加高效和准确。希望你能将这些知识应用到实际项目中,提升你的自动化测试能力。
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
Copyright 2005-2024 yuanmayuan.com 【源码园】 版权所有 备案信息
声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告