ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

WEditor可视化UI自动化脚本编辑器:零代码门槛的Android自动化测试实战指南

WEditor可视化UI自动化脚本编辑器:零代码门槛的Android自动化测试实战指南 1. 项目概述为什么我们需要 WEditor如果你是一名测试工程师、App开发者或者只是对自动化感兴趣想给自己的手机App做一些重复性的操作脚本那你一定对“写UI自动化脚本”这件事又爱又恨。爱的是它能解放双手把那些枯燥的点击、滑动、输入交给机器恨的是入门门槛实在不低。你得懂点编程通常是Python要理解控件树、XPath定位还得跟ADB、Appium这些工具打交道光是环境配置就能劝退一大半人。我自己在团队里推动UI自动化测试时就经常遇到这种情况测试同学业务能力很强但一看到要写代码就头疼开发同学能写代码但又觉得为了一些简单的测试用例去研究uiautomator2的API太浪费时间。结果就是自动化测试的构想很美好落地却总是磕磕绊绊。直到我遇到了WEditor这个由阿里巴巴开源的可视化UI自动化脚本编辑器它几乎完美地解决了上述痛点。简单来说WEditor是一个运行在浏览器里的工具。你把手机连上电脑它就能实时显示手机屏幕你直接用鼠标在网页上点一点、划一划它就能自动帮你生成可执行的Python代码。这就像给UI自动化套上了一层“所见即所得”的壳子让脚本编写从“埋头敲代码”变成了“动手点屏幕”。无论是想快速录制一个简单的操作流程还是需要精准定位一个复杂控件来编写健壮的测试用例WEditor都能提供极大的便利。接下来我就结合自己大量的实操经验带你彻底玩转这个利器。2. 核心设计思路可视化如何颠覆脚本编写在深入细节之前我们得先弄明白WEditor的核心设计理念。它不是一个全新的自动化引擎而是一个优秀的“翻译官”和“操作台”。它的底层依然依赖成熟的自动化框架比如针对Android的uiautomator2和针对iOS的facebook-wda。WEditor的聪明之处在于它在这套强大的引擎之上构建了一个极其友好的可视化交互层。2.1 从“代码驱动”到“交互驱动”的范式转变传统的UI自动化脚本开发流程是线性的人工分析App界面 - 在代码中编写定位逻辑如driver.find_element_by_id(“xxx”) - 编写操作逻辑如.click().send_keys() - 运行调试 - 根据报错反复修改定位逻辑。这个过程严重依赖开发者的想象力和经验你需要在大脑里将屏幕上的元素映射成代码中的对象。WEditor彻底改变了这个流程。它把你的操作和代码生成同步化了实时镜像你的手机屏幕被实时投屏到网页上。交互即定义你在网页投屏上的每一次点击、长按、滑动都会被WEditor捕获。自动翻译WEditor分析这次交互发生在哪个控件上自动获取该控件的所有属性ID、文本、类名、坐标等并生成对应的、最优化的定位代码和操作代码。即时反馈生成的代码立刻出现在编辑器中你可以运行它手机会同步执行完成闭环验证。这个转变的意义在于它将脚本编写的核心从“语法和API记忆”转移到了“业务逻辑梳理”上。你不需要再死记uiautomator2里某个控件的特定属性名只需要关心“我下一步要点击哪里”。工具帮你搞定剩下的所有技术细节。2.2 核心架构三层解耦带来的灵活与稳定WEditor的架构可以清晰地分为三层这种设计保证了它的灵活性和扩展性前端展示层Web UI基于Web技术如HTML5、JavaScript构建的浏览器界面。负责实时投屏、渲染控件树、提供代码编辑器、接收用户鼠标键盘事件。它的跨平台特性正源于此——任何有现代浏览器的操作系统都能使用。中间桥接层WEditor Server一个本地的Python HTTP服务。它是前后端的桥梁接收前端发来的用户操作指令如“点击坐标(300,500)”将其转化为对底层自动化框架的调用。同时它也负责从手机端抓取屏幕截图和控件层级信息发送给前端展示。底层驱动层UIAutomator2 / WebDriverAgent真正与手机操作系统交互的“引擎”。Android上通过uiautomator2调用系统的UIAutomator测试框架iOS上通过facebook-wda控制WebDriverAgent。这一层负责执行具体的点击、滑动、获取控件树等原子操作。提示理解这个分层架构非常有助于后续的问题排查。比如如果点击没反应可能是前端到服务器的网络问题中间层也可能是uiautomator2服务断了底层。如果屏幕不刷新可能是截图获取失败底层到中间层。这种设计还有一个好处前后端分离。理论上只要协议一致你可以用任何语言重写那个Web前端或者将WEditor Server集成到你自己的测试平台中只利用其强大的控件识别和代码生成能力。3. 从零开始手把手搭建WEditor实战环境光说不练假把式让我们一步步搭建一个可用的WEditor环境。我会以最常用的Android平台为例覆盖Windows和macOS系统并指出所有可能踩坑的细节。3.1 基础环境准备Python与包管理工具WEditor是一个Python项目所以第一步是安装Python。我强烈推荐使用Python 3.8或3.9版本这是目前兼容性最广、最稳定的选择。避免使用Python 3.10以上的最新版有时一些底层依赖如某些旧版C扩展可能编译失败。Windows用户从Python官网下载安装包务必勾选“Add Python 3.x to PATH”这样才能在命令行直接使用python和pip命令。macOS用户系统可能自带Python 2.7我们需要Python 3。建议使用Homebrew安装brew install python3.9。安装后python3和pip3命令可用。安装后打开终端Windows用CMD或PowerShellmacOS用Terminal验证安装python --version # Windows # 或 python3 --version # macOS/Linux pip --version # Windows # 或 pip3 --version # macOS/Linux实操心得国内网络直接使用pip安装可能会很慢或失败。务必先配置镜像源。创建一个pip.ini文件Windows在C:\Users\你的用户名\pip\目录macOS/Linux在~/.pip/pip.conf内容如下[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn这能极大提升后续安装依赖的速度和成功率。3.2 Android专属ADB工具配置详解ADB是连接电脑和Android设备的桥梁WEditor需要通过它来安装自动化服务、传输指令。很多新手卡在这一步。1. 下载与安装独立下载不推荐下载完整的Android Studio。可以直接搜索“Platform-Tools”或访问Android开发者官网下载独立的SDK Platform-Tools包。使用包管理器推荐macOS:brew install android-platform-toolsLinux (Debian/Ubuntu):sudo apt install adb2. 配置环境变量关键步骤目的是让系统在任何路径下都能识别adb命令。Windows将下载的platform-tools文件夹解压到某个位置例如D:\android\。右键“此电脑” - “属性” - “高级系统设置” - “环境变量”。在“系统变量”中找到Path点击“编辑”。点击“新建”输入D:\android\platform-tools你的实际路径然后确定所有窗口。macOS/Linux 假设adb安装在/usr/local/bin/Homebrew默认通常已加入PATH。如果没有打开~/.zshrc或~/.bash_profile添加一行export PATH$PATH:/path/to/platform-tools然后执行source ~/.zshrc。3. 连接手机并授权用USB线连接手机和电脑。在手机上进入“设置” - “关于手机”连续点击“版本号”7次开启“开发者选项”。返回设置进入“开发者选项”开启“USB调试”。部分手机还需要开启“USB调试安全设置”或“允许通过USB调试修改权限”。在电脑终端输入adb devices。此时手机上会弹出“允许USB调试吗”的对话框勾选“始终允许”点击“确定”。再次执行adb devices你应该能看到一个设备序列号后面跟着device字样表示连接成功。List of devices attached abcdef123456 device常见问题如果显示unauthorized检查手机是否点击了授权。如果什么都没显示尝试更换USB线或USB口并确保安装了正确的手机USB驱动Windows上常见问题。3.3 安装WEditor及其核心依赖环境就绪后安装WEditor本身非常简单。但为了让它能控制Android手机我们必须先安装其底层驱动uiautomator2。1. 安装uiautomator2在终端中执行以下命令。--pre参数是为了安装包含最新特性的预发布版通常更稳定。pip install --pre uiautomator2 # 或 pip3 install --pre uiautomator2这个命令会安装uiautomator2库以及一个名为uiautomator2的命令行工具。2. 初始化设备关键一步这是很多教程里省略但至关重要的一步。我们需要在手机上安装uiautomator2守护进程和服务端App。# 确保手机已通过adb连接 adb devices # 初始化设备会自动在手机上安装必要的APK python -m uiautomator2 init # 或 python3 -m uiautomator2 init执行后你会看到命令行开始下载、推送并安装几个APK到你的手机。完成后手机上会出现一个名为ATX的应用。请不要卸载它这是自动化服务端。3. 安装WEditor最后安装WEditor本体pip install weditor # 或 pip3 install weditor至此所有核心依赖安装完毕。4. 启动与初探WEditor界面全功能解析安装完成后在终端输入一个简单的命令即可启动weditor默认情况下它会启动一个本地服务并自动用你的默认浏览器打开http://127.0.0.1:17310这个地址。如果自动打开失败手动在浏览器输入这个地址即可。4.1 主界面布局与连接设备第一次打开的界面非常简洁。核心区域通常分为三部分顶部连接栏这里显示当前连接的设备。如果你的手机已通过adb正确连接并完成init下拉框里应该能看到你的设备序列号。选中它WEditor就会开始与手机通信。中央屏幕镜像区连接设备后这里会实时显示你手机的屏幕。你可以在这里直接用鼠标操作。右侧/底部控件树与代码区这是核心工作区。通常右侧会显示当前屏幕的控件层级树XML结构底部或侧边是Python代码编辑器。连接设备时的注意事项如果设备下拉框为空回到终端检查adb devices是否有device状态的设备。首次连接时WEditor可能会在手机上再次安装或更新ATX服务请保持手机亮屏并在前台不要锁屏。如果屏幕镜像一直是黑屏或卡住尝试点击工具栏的“刷新”按钮或断开USB重连。4.2 核心功能模块深度使用4.2.1 屏幕实时预览与交互录制这是WEditor最直观的功能。当屏幕镜像正常后你可以点击在镜像上单击相当于在手机上点击该位置。WEditor会自动在代码区生成类似d.click(x, y)或更优的d(resourceId“com.xxx:id/button”).click()的代码。滑动在镜像上按住鼠标拖动生成d.swipe(x1, y1, x2, y2)代码。长按通常通过右键菜单或特定按钮触发。输入文本在镜像上点击输入框后可以在WEditor的“操作”面板中输入文字生成d.set_text(“内容”)代码。技巧不要过度依赖绝对坐标点击d.click(x, y)因为屏幕分辨率一变就可能点错。WEditor生成坐标点击通常是因为它无法唯一定位到那个控件。我们应该追求使用控件属性定位。4.2.2 控件层级树自动化脚本的“地图”点击“Dump Hierarchy”或类似按钮WEditor会获取当前屏幕的完整UI布局信息并以树形结构展示在右侧。这是编写健壮自动化脚本的基石。节点浏览展开树节点你可以看到整个页面的布局从根节点到每一个按钮、文本框。属性查看点击树中的任何一个节点下方会显示该控件的所有属性这是定位控件的关键resource-id最理想的定位方式通常唯一且稳定。格式如com.xxx:id/login_button。text控件显示的文本。但文本可能变化或国际化。class控件类型如android.widget.Button。bounds控件在屏幕上的坐标范围如[42,120][138,156]。content-desc,package等。XPath生成很多工具会提供“复制XPath”功能。WEditor虽然没有直接按钮但你可以根据属性自己构造或者使用它生成的定位代码其本质就是一种选择器。如何利用控件树编写稳定脚本假设你要点击一个登录按钮。在控件树中找到这个按钮节点。查看它的属性。如果它有唯一的resource-id那么生成的代码就是最稳定的d(resourceId“com.example.app:id/btn_login”).click()。如果resource-id为空或不唯一但text是“登录”且唯一可以用d(text“登录”).click()。如果都不唯一可能需要组合定位d(className“android.widget.Button”, text“登录”).click()。4.2.3 内置代码编辑器与脚本运行WEditor的编辑器支持Python语法高亮和基础提示。你可以录制生成代码通过界面操作代码会自动追加到编辑器中。手动编辑你可以像在普通编辑器中一样修改、删除、增加代码。运行脚本点击“运行”按钮或按快捷键如CtrlEnter编辑器中的代码就会在当前连接的设备上执行。查看输出运行日志和结果会显示在编辑器下方的输出面板中方便调试。4.2.4 代码片段与模板提升效率的利器WEditor允许你保存和插入常用的代码块。例如你可以将“等待页面加载”、“处理弹窗”、“滑动查找元素”等通用操作保存为模板。在编写新脚本时直接插入避免重复劳动。这个功能需要你稍微探索一下界面通常在设置或某个菜单中。5. 实战从零编写一个自动化测试脚本我们用一个真实的场景来串联所有功能自动化测试一个简单的登录流程。假设被测App有一个登录页包含用户名输入框、密码输入框和登录按钮。5.1 步骤一启动与连接在电脑上打开终端输入weditor启动服务。浏览器打开http://127.0.0.1:17310。用USB连接手机确保adb devices可识别。在WEditor界面顶部的设备下拉框中选择你的手机。等待屏幕镜像出现。5.2 步骤二分析页面与定位元素在手机上手动打开被测App进入登录页面。在WEditor中点击“Dump Hierarchy”按钮获取当前页面的控件树。在控件树中展开节点寻找代表用户名输入框、密码输入框和登录按钮的节点。逐个点击这些节点查看并记录它们的关键属性。假设我们找到用户名输入框resource-id“com.demo.app:id/et_username”密码输入框resource-id“com.demo.app:id/et_password”登录按钮resource-id“com.demo.app:id/btn_login”注意在实际项目中resource-id可能是动态的或不存在的。这时需要记录其他属性如text、class甚至考虑使用XPath。优先选择resource-idtextclass 组合定位 XPath。5.3 步骤三录制与编写脚本现在我们不直接手写代码而是用WEditor的录制功能来生成骨架再优化。清空编辑器开始前清空代码编辑区。录制点击用户名框在屏幕镜像上用鼠标点击用户名输入框的位置。WEditor会在代码区生成一行代码可能是d.click(200, 300)坐标或理想的d(resourceId“com.demo.app:id/et_username”).click()。录制输入用户名点击后输入框应该获得焦点。在WEditor的“操作”面板或工具栏找到“输入文本”功能输入你的测试用户名如“testuser”。这会生成d.set_text(“testuser”)。注意set_text是uiautomator2的方法用于向当前焦点控件输入。更好的做法是直接定位到输入框再调用.set_text()这样更精确。同样操作密码框和登录按钮重复步骤点击密码框、输入密码最后点击登录按钮。优化生成的代码录制生成的代码可能夹杂坐标点击和不必要的click。我们需要将其优化成更健壮的版本。最终代码可能如下import uiautomator2 as u2 # 连接设备WEditor已连接这里演示完整脚本 d u2.connect() # 默认连接当前USB设备 # 1. 输入用户名 - 直接定位元素并设置文本无需先点击 d(resourceId“com.demo.app:id/et_username”).set_text(“testuser”) # 2. 输入密码 d(resourceId“com.demo.app:id/et_password”).set_text(“123456”) # 3. 点击登录按钮 d(resourceId“com.demo.app:id/btn_login”).click() # 4. 添加一个简单断言验证登录成功例如检查是否跳转到主页 # 假设主页有一个特征元素如“欢迎”文本 if d(text“欢迎”).exists(timeout5): print(“登录成功”) else: print(“登录可能失败未检测到欢迎语。”)5.4 步骤四运行与调试将优化后的代码复制到WEditor的代码编辑器中。确保手机停留在登录页面。点击编辑器的“运行”按钮。观察手机它会自动执行输入和点击操作。查看WEditor下方的输出面板是否有报错或打印的日志。常见调试情况元素找不到报错UiObjectNotFoundError。检查resource-id是否正确或者页面是否已经跳转。可以尝试在操作前加个等待d.sleep(2)或者使用智能等待d(resourceId“xxx”).wait(timeout10)。点击没反应可能是控件不可点击clickablefalse。尝试使用d(resourceId“xxx”).click_exists(timeout5)或者改用坐标点击作为最后手段。脚本执行太快页面加载跟不上脚本速度。在关键步骤后添加d.sleep(1)或使用wait方法。6. 进阶技巧与最佳实践掌握了基础操作后这些进阶技巧能让你的自动化脚本更强大、更稳定。6.1 处理弹窗与动态元素App中经常出现弹窗权限申请、更新提示、广告。一个健壮的脚本必须能处理它们。策略弹窗监控与自动处理可以在主要操作逻辑外包裹一个弹窗处理循环。利用uiautomator2的watcher功能但WEditor中更直观的做法是写一个判断逻辑。def handle_popups(d): “”“处理常见弹窗”“” # 示例如果发现“允许”按钮点击它 if d(text“允许”).exists(timeout1): d(text“允许”).click() return True # 示例如果发现“确定”或“知道了”按钮点击 if d(text“确定”).exists(timeout1) or d(text“知道了”).exists(timeout1): d(text“确定”, className“android.widget.Button”).click() return True # 可以继续添加其他弹窗判断 return False # 在主脚本的关键步骤前调用 while handle_popups(d): d.sleep(0.5) # 处理完一个弹窗后稍等可能连续弹出6.2 使用相对定位与兄弟节点当元素没有唯一标识时可以通过相对位置或兄弟节点来定位。相对定位uiautomator2支持left_of(),right_of(),above(),below()等方法。# 点击“用户名”文本右侧的输入框假设‘用户名’是TextView d(text“用户名”).right(className“android.widget.EditText”).click()兄弟/父子节点通过XPath或child,sibling选择器uiautomator2对XPath支持有限更推荐用其内置选择器链。6.3 集成到持续集成CI流程WEditor本身是交互式工具但生成的脚本是纯Python代码可以轻松集成到CI/CD中如Jenkins, GitLab CI。环境准备在CI服务器上安装Python、uiautomator2、weditor如果只需要运行可不装weditor以及设备驱动对于Android模拟器或云真机。脚本管理将WEditor编写好的.py脚本文件纳入代码仓库。设备连接CI中可以通过adb连接实体设备、启动模拟器或连接云测平台如Testin, Sauce Labs的设备。执行测试在CI的Pipeline中添加一个步骤来执行Python脚本例如python test_login.py。结果收集脚本中应包含断言并通过退出码或生成测试报告如pytest allure来告知CI成功或失败。6.4 与Pytest测试框架结合对于更复杂的测试套件建议使用pytest框架来组织用例。WEditor生成的单个操作函数可以作为pytest的测试步骤。# test_login.py import uiautomator2 as u2 import pytest pytest.fixture(scope“module”) def device(): d u2.connect() yield d d.app_stop(“com.demo.app”) # 测试结束后停止App def test_successful_login(device): d device d.app_start(“com.demo.app”) d(resourceId“com.demo.app:id/et_username”).set_text(“testuser”) d(resourceId“com.demo.app:id/et_password”).set_text(“123456”) d(resourceId“com.demo.app:id/btn_login”).click() assert d(text“欢迎”).exists(timeout5) def test_login_with_wrong_password(device): d device d.app_start(“com.demo.app”) d(resourceId“com.demo.app:id/et_username”).set_text(“testuser”) d(resourceId“com.demo.app:id/et_password”).set_text(“wrong”) d(resourceId“com.demo.app:id/btn_login”).click() # 断言出现错误提示 assert d(text“密码错误”).exists(timeout3)然后在CI中运行pytest test_login.py -v即可。7. 常见问题排查与解决方案实录在实际使用中你肯定会遇到各种问题。这里我整理了最典型的几个案例和解决思路相当于一个速查手册。问题现象可能原因排查步骤与解决方案启动WEditor后设备下拉框为空1. ADB未安装或未配置环境变量。2. 手机未开启USB调试。3. USB连接不稳定或驱动问题。4. 其他进程占用了ADB端口。1. 终端执行adb version确认adb命令可用。2. 执行adb devices查看设备列表。若无检查手机USB调试和授权。3. 更换USB线或端口重启ADB服务adb kill-server adb start-server。4. 检查5037端口是否被占用。屏幕镜像黑屏或卡住不动1.uiautomator2服务未在手机上正确启动。2. 手机屏幕锁屏或处于休眠状态。3. 手机系统版本或定制ROM兼容性问题。1. 在WEditor中尝试点击“强制重启UIAutomator”按钮如果有。2. 在终端执行adb shell uiautomator start手动启动服务。3. 保持手机亮屏关闭省电模式。4. 对于某些国产ROM需要在“开发者选项”中开启“禁止权限监控”或类似选项。点击屏幕镜像上的元素无反应或生成的代码是坐标而非属性定位1. 控件树未成功获取或解析错误。2. 目标控件是自定义View或非标准控件属性难以识别。3. App使用了原生或游戏引擎如Unity、Cocos控件树不同。1. 多次点击“Dump Hierarchy”观察控件树是否正常刷新。2. 尝试使用“辅助功能”或“坐标点击”作为备用方案在WEditor设置中查找。3. 对于游戏或特殊应用可能需要使用基于图像识别的自动化工具如Airtest作为补充。运行脚本时报UiObjectNotFoundError1. 元素定位符写错了如resource-id不对。2. 页面尚未加载完成元素还未出现。3. 页面已经跳转元素不在当前页面。4. 元素在屏幕外需要滑动才能看到。1. 使用WEditor再次Dump Hierarchy确认当前页面的元素属性是否与脚本一致。2. 在操作前增加显式等待d.sleep(2)或d(resourceId“xxx”).wait(timeout10)。3. 添加页面判断逻辑。4. 在操作前使用d(scrollableTrue).scroll.to(resourceId“xxx”)滑动查找。WEditor启动时报端口冲突Port 17310 already in use默认端口17310被其他程序占用。使用weditor --port 新端口号指定一个新端口启动例如weditor --port 18080然后在浏览器访问http://127.0.0.1:18080。在iOS设备上无法连接或控制1. 未安装facebook-wda依赖。2. 未在iOS设备上配置并启动WebDriverAgent。3. 证书和信任问题。1. 安装iOS依赖pip install facebook-wda。2. 配置WebDriverAgent非常复杂需要Xcode和开发者账号。建议参考facebook-wda官方文档或考虑使用更成熟的iOS自动化方案如Appium。WEditor对iOS的支持目前不如Android成熟。一个真实的踩坑记录有一次在测试某电商App时登录按钮的resource-id每次启动都会变动态生成。通过WEditor的控件树发现其text属性稳定为“登录”但同一页面有多个“登录”文本。最终解决方案是结合其父容器的resource-id进行定位d(resourceId“com.xxx:id/login_layout”).child(text“登录”).click()。这个案例告诉我们永远要有备用定位策略不能只依赖单一属性。8. 横向对比WEditor在自动化工具生态中的位置为了让你更清楚何时该选择WEditor我将它与几个主流工具做个简单对比。特性/工具WEditorAppium Desktop (Inspector)AirtestIDE原生UIAutomatorViewer核心定位可视化脚本生成与编辑元素探查与脚本录制图像识别为主脚本录制单纯的Android UI层次查看器上手难度极低点哪打哪中等需理解Appium框架低图像识别直观低但功能单一脚本语言Python (uiautomator2)多语言需配合AppiumPython (Airtest/Poco)无需手动写代码跨平台Android/iOS (理论上)Android/iOS/WebAndroid/iOS/Windows仅Android脚本稳定性高基于属性定位高基于属性定位中图像易受分辨率、UI变化影响高但需自己实现集成CI容易纯Python脚本容易但需Appium Server容易纯Python脚本需自己封装社区与生态活跃阿里开源非常活跃Appium生态活跃网易开源官方但已停止更新最适合场景快速原型、测试用例编写、教学演示复杂的跨平台自动化项目游戏测试、UI变化不频繁的App仅需查看UI布局时如何选择如果你是测试新手或想快速为Android App创建可维护的自动化脚本WEditor是首选。它学习曲线平缓能让你立刻看到成果。如果你需要测试iOS、Web或更复杂的混合应用Appium是更全面的解决方案但需要更多配置和学习。如果你的App UI变动频繁或者有大量游戏/图像界面Airtest的图像识别可能更有优势。如果你只需要查看UI布局不写自动化UIAutomatorViewer或Appium Inspector就足够了。WEditor的强大之处在于它精准地切入了一个痛点让编写UI自动化脚本变得像操作图形界面一样简单。它降低了技术门槛让业务测试人员也能参与到自动化建设中来这对于提升团队整体的效率和质量意识价值巨大。我个人在多个项目中推广使用WEditor后最深的体会是它不仅仅是一个工具更是一种“民主化”自动化测试的思路。它把脚本编写的权力从少数熟悉代码的工程师手中部分地移交给了更熟悉业务场景的测试人员。两者结合测试用例的覆盖率和有效性得到了显著提升。当然它并非银弹复杂的业务逻辑、动态数据处理、断言设计等仍然需要扎实的编程和测试功底。但无论如何WEditor已经为我们打开了一扇更轻松、更高效的大门。如果你还在为UI自动化脚本头疼不妨现在就打开终端输入pip install weditor开始你的可视化自动化之旅吧。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表