影刀:自动化测试网页应用

阶段1:用户交互配置(收集核心参数)

步骤编号

操作描述

组件

配置细节

输入/输出变量

说明

1.1

创建自定义对话框

自定义对话框

• 标题:网页功能测试配置 • 尺寸:600×400px

-

集中收集用户配置

1.2

选择测试模块(多选)

多选框组

• 选项:按页面实际模块填写(如首页、坐席监控、班长管理、工单管理...) • 绑定变量:test_status["selected_modules"]

输出:selected_modules(如["班长管理", "知识库"])

选项需与页面模块文本完全一致

1.3

正常截图根路径

文件夹选择框

• 绑定变量:test_status["normal_root"]

输出:normal_root(如"D:\测试\正常")

-

1.4

错误截图根路径

文件夹选择框

• 绑定变量:test_status["error_root"]

输出:error_root(如"D:\测试\错误")

-

1.5

WPS配置

文本输入框

• API密钥绑定:test_status["wps_api_key"]• 表格ID绑定:test_status["wps_table_id"]

输出:WPS认证信息

-

1.6

初始化模块-子菜单映射

变量初始化

• 变量:module_submenus_str(格式:"模块1:子菜单1,子菜单2;模块2:子菜单A...",如"班长管理:工号状态,语音信箱;知识库:知识查询..."

输出:module_submenus_str

需与页面子菜单文本一致

1.7

显示对话框并确认

显示对话框

• 模态显示,点击“确认”后生效

-

未勾选模块则提示“请选择至少一个模块”

阶段2:文件夹预处理(确保存储路径)

步骤编号

操作描述

组件

配置细节

输入变量

输出变量

2.1

获取当前日期

获取当前日期

• 格式:YYYYMMDD

-

current_date(如"20251021")

2.2

拼接正常截图路径

文本拼接

• 内容:{normal_root}/{current_date}

normal_rootcurrent_date

normal_folder

2.3

创建正常截图文件夹

创建文件夹

• 路径:normal_folder,勾选“已存在不创建”

normal_folder

-

2.4

拼接错误截图路径

文本拼接

• 内容:{error_root}/{current_date}

error_rootcurrent_date

error_folder

2.5

创建错误截图文件夹

创建文件夹

• 路径:error_folder

error_folder

-

2.6

拼接错误日志路径

文本拼接

• 内容:{error_folder}/logs

error_folder

error_log_folder

2.7

创建错误日志文件夹

创建文件夹

• 路径:error_log_folder

error_log_folder

-

阶段3:网页自动化测试(核心遍历+定位)

步骤编号

操作描述

组件

配置细节

输入变量

输出变量

3.1

打开目标网页

打开浏览器

• 网址:目标系统URL,最大化窗口

-

browser(浏览器实例)

3.2

遍历选中的模块

ForEach循环

• 列表:selected_modules • 当前项:current_module(如"班长管理")

selected_modules

current_module

3.3

清洗模块名

文本替换

• 替换规则:`\ / : * ? " < >

_`

current_module

3.4

提取当前模块的子菜单

文本处理

1. 分割module_submenus_str["模块1:子菜单...", "模块2:子菜单..."] 2. 筛选含current_module的项→submenu_str 3. 分割submenu_str(冒号+逗号)→submenus

module_submenus_strcurrent_module

submenus(如["工号状态"...])

3.5

遍历子菜单

ForEach循环

• 列表:submenus • 当前项:current_submenu(如"工号状态")

submenus

current_submenu

3.6

清洗子菜单名

文本替换

• 同3.3,处理current_submenu

current_submenu

clean_submenu

3.7

定位模块元素(展开按钮)

获取相似元素列表(web)

• 网页:browser • XPath://div[contains(@class, 'el-submenu__title') and text()='{{current_module}}']

browsercurrent_module

module_elements(元素列表)

3.8

提取模块元素

获取列表指定位置项

• 列表:module_elements,位置:0 • 容错:若列表为空,返回None

module_elements

target_module

3.9

分支判断:模块元素是否存在

分支判断

• 条件:target_module is not None

target_module

-

3.10

点击模块(展开子菜单)

点击元素(web)

• 网页:browser,目标:target_module • 点击方式:左键单击中心点

browsertarget_module

-

3.11

等待子菜单加载

等待元素出现(web)

• XPath://li[contains(@class, 'el-menu-item') and text()='{{current_submenu}}'] • 超时:10秒

browsercurrent_submenu

submenu_loaded(布尔值)

3.12

定位子菜单元素

获取相似元素列表(web)

• XPath://div[text()='{{current_module}}']/following::ul//li[text()='{{current_submenu}}']

browsercurrent_module

submenu_elements(元素列表)

3.13

提取子菜单元素

获取列表指定位置项

• 列表:submenu_elements,位置:0 • 容错:若列表为空,返回None

submenu_elements

target_submenu

3.14

点击子菜单(进入页面)

点击元素(web)

• 网页:browser,目标:target_submenu

browsertarget_submenu

-

3.15

检测页面异常

组件组合

1. HTTP状态码→status_code 2. 控制台错误→console_errors 3. 页面标题→page_title 4. 内容长度→body_length 5. 异常汇总→is_error(布尔值)、error_reason

browser

is_errorerror_reason

阶段4:结果处理(区分正常/错误)

步骤编号

操作描述

组件

配置细节

输入变量

输出变量

4.1

初始化结果列表

变量初始化

• 变量:test_results,初始值:空列表

-

test_results

4.2

正常场景:截图

网页截图(web)

• 路径:{normal_folder}/{clean_module}_{clean_submenu}_正常.png

browsernormal_folder

normal_img_path

4.3

正常场景:记录结果

列表添加元素

• 内容:{"模块": clean_module, "子模块": clean_submenu, "状态": "正常", "截图路径": normal_img_path, ...}

相关变量

test_results

4.4

异常场景:截图

网页截图(web)

• 路径:{error_folder}/{clean_module}_{clean_submenu}_异常.png

browsererror_folder

error_img_path

4.5

异常场景:生成日志

写入文本文件

• 路径:{error_log_folder}/{clean_module}_{clean_submenu}_日志.txt • 内容:时间、模块、异常原因等

相关变量

error_log_path

4.6

异常场景:记录结果

列表添加元素

• 内容:{"模块": clean_module, "子模块": clean_submenu, "状态": "错误", "截图路径": error_img_path, "异常原因": error_reason, ...}

相关变量

test_results

阶段5:上传WPS表格

步骤编号

操作描述

组件

配置细节

输入变量

输出变量

5.1

生成WPS认证头

文本拼接

• 内容:"Token {{wps_api_key}}"

wps_api_key

auth_header

5.2

创建当日视图

WPS多维表格-创建视图

• 表格ID:wps_table_id• 视图名:current_date

wps_table_idcurrent_date

-

5.3

遍历结果并上传

ForEach循环+组件

1. 上传截图至WPS云存储→screenshot_url 2. 添加记录:模块、子模块、状态、截图链接等

test_resultsauth_header

-

阶段6:流程结束

步骤编号

操作描述

组件

配置细节

输入变量

说明

6.1

关闭浏览器

关闭浏览器

• 实例:browser

browser

-

6.2

提示测试完成

提示对话框

• 内容:"测试完成!结果已上传至WPS(视图:{{current_date}})"

current_date

-

<think>嗯,用户想了解使用影刀进行UI自动化测试的必备知识,我得好好梳理一下相关信息。用户明确提到了"必备知识、技巧、教程"这三个关键词,看来是希望系统性地掌握这个工具。从提供的参考资料来看,虽然都是自动化测试相关内容,但只有引用[3]和引用[4]提到UI自动化和Appium/Selenium框架,其他主要是接口自动化或持续集成方面的内容。其中引用[3]提到Python移动自动化测试所需的定位工具和脚本设计规则,引用[4]则详细说明了Selenium的WebDriver原理和元素定位策略。这些对于传统UI自动化测试很有参考价值,但影刀作为RPA工具侧重点可能不同。影刀作为国产RPA工具,主要优势在两点:通过可视化流程降低编码门槛、提供网页/桌面应用/微信等多平台支持。所以思考时要从零编码入手,重点放在影刀特有的操作方式上。可以先确定知识体系框架:核心原理、环境准备、元素定位、流程设计、异常处理这几个模块比较合理。需要强调可视化流程块和元素选择器的使用,这是影刀区别于Selenium等传统框架的关键点。具体到知识点,影刀的特色功能如微信自动化和桌面程序操作值得单独列出。异常处理部分要考虑加入元素等待策略和界面变化的应对方案,这点引用[4]提到的"健壮的自动化测试解决方案"理念可以借鉴。进阶内容考虑持续集成方面知识,正好引用[5]提到Jenkins集成UI自动化测试的案例可以参考。注意到用户参考的链接多数提到Python,准备提醒用户影刀虽支持Python但主要使用图形化编程,避免ta走弯路。教程部分考虑推荐官方文档为主,因影刀更新较快第三方教程可能过时。</think> 以下是针对「影刀RPA」进行UI自动化测试的必备知识体系与核心技巧整理,结合行业通用规范及影刀特性: --- ### **一、必备知识体系** 1. **影刀核心原理** - 基于Windows底层API实现元素定位,支持`图像识别`+`元素探测器`双模式[^4] - 可视化流程设计(非代码优先),通过拖拽模块构建自动化逻辑 2. **测试环境搭建** - 安装影刀工作室(开发端)与影刀机器人(执行端) - 浏览器驱动适配:Chrome需匹配对应版本WebDriver[^4] 3. **元素定位关键技术** ```mermaid graph LR A[定位方式] --> B[HTML元素选择器] A --> C[图像特征匹配] A --> D[坐标点击] B --> E[XPATH/CSS选择器] B --> F[影刀元素探测器] C --> G[动态容差设置] ``` 4. **流程设计核心模块** | 模块类型 | 功能描述 | 应用场景 | |----------------|------------------------------|------------------------| | 界面操作 | 点击/输入/拖拽等 | Web/桌面应用交互 | | 条件分支 | IF/ELSE逻辑控制 | 动态页面处理 | | 循环控制 | FOR/WHILE循环 | 表格数据处理 | | 数据提取 | 网页数据抓取 | 结果验证 | --- ### **二、实战技巧手册** 1. **稳定性增强方案** - **动态元素处理**: ```python # 伪代码:等待元素出现再操作 while not exists(element): wait(1) click(element) ``` - **图像容错机制**:设置`相似度阈值>0.9`应对界面微调[^4] - 进程守护:监控应用崩溃自动重启 2. **异常处理框架** ```mermaid graph TB 异常触发 --> 截图存档 --> 日志记录[时间+操作步骤] --> if 重试机制 then 重试3次 else 流程终止 ``` 3. **微信/钉钉自动化** - 专用模块:`打开微信聊天窗口`+`发送文件` - 注意点:需关闭Windows Defender实时防护 4. **性能优化技巧** - 减少高精度图像匹配频次 - 采用元素探测器替代坐标点击 - 并行执行独立任务 --- ### **三、学习路径推荐** 1. **新手入门** - 影刀官方教程:**「元素操作专题」**(含20+实战案例) - 练习项目:电商订单处理/报表自动下载 2. **进阶提升** - 关键课程: 《影刀流程调试技巧》 《复杂网页结构解析》(含iframe处理) - 扩展技能: Python集成(调用.py脚本处理数据)[^3] 3. **企业级实践** - CI/CD集成:通过Jenkins调度影刀机器人[^5] - 测试架构:搭建`中央控制台`管理多机器任务分发 --- ### **四、典型问题解决方案** 1. **元素无法定位** - 尝试方案: ✅ 启用`穿透模式`访问底层控件 ✅ 组合使用XPath与图像特征 ❌ 避免依赖绝对坐标 2. **流程中途中断** - 检查点: - 应用窗口是否置顶 - 杀毒软件拦截日志 - 屏幕缩放比例是否100% > 案例:某电商公司使用影刀实现订单核对自动化,通过`循环表格操作+异常重试`模块,将人工1小时任务压缩至8分钟执行[^1] --- ### **📚 精选教程资源** 1. 官方知识库:`help.encoo.com`(含错误代码详解) 2. 实战项目课:**《影刀电商自动化实战》**(覆盖85%企业场景) 3. 社区论坛:`bbs.encoo.com`(每日更新故障解决方案) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值