影刀RPA实操指南:网页UI自动化测试入门——用影刀替代Selenium做回归测试

很多人不知道影刀RPA还能做自动化测试——功能测试、回归测试、冒烟测试。相比Selenium,影刀更易上手、不需要写代码、更适合非技术测试同学。
在这里插入图片描述

这篇讲如何用影刀搭一套简单但实用的UI自动化测试方案。

影刀做UI测试 vs Selenium的对比

对比维度 影刀RPA Selenium
上手难度 低(拖拽为主) 高(需要Python/Java)
维护成本 中(XPath偶尔要更新) 高(代码量大)
报告能力 需要自己配置日志 有专门的测试框架
CI/CD集成 有但不如pytest方便 很方便
适合场景 业务验收、冒烟测试 大规模自动化测试

结论:如果是开发团队的完整测试体系,用Selenium+pytest。如果是业务侧的快速验收测试,影刀足够且快得多。

在这里插入图片描述

拼多多店群自动化报活动上架!

设计测试流程的四个模块

模块一:测试前准备

在这里插入图片描述

1. 清理上次测试留下的数据(或用独立测试账号)
2. 登录测试环境
3. 导航到被测页面
4. 截图记录"测试前初始状态"

测试账号原则:一定要有专用测试账号,不要用生产账号跑测试。测试账号里可以放虚拟数据,不影响真实业务。

模块二:执行测试步骤(含断言)

在这里插入图片描述

"断言"是自动化测试的核心:不只是执行操作,还要验证结果是否符合预期。

# 测试案例:商品搜索功能
def test_search():
    # 前提条件
    open_url('https://xxx.com/search')
    
    # 执行操作
    input_text('搜索框', '羽绒服')
    click_button('搜索按钮')
    wait_element('//div[@class="result-list"]', timeout=10)
    
    # ===== 断言 =====
    # 1. 验证有搜索结果
    result_count = get_element_count('//div[@class="result-item"]')
    assert result_count > 0, f"搜索无结果:期望>0,实际{result_count}"
    
    # 2. 验证结果标题包含关键词
    first_title = get_text('(//div[@class="result-item"]//h3)[1]')
    assert '羽绒服' in first_title, f"标题不含关键词:{first_title}"
    
    # 3. 验证结果数量在合理范围
    result_text = get_text('//span[@class="result-count"]')
    assert '条' in result_text, f"结果统计格式异常:{result_text}"
    
    log("✅ 商品搜索测试通过")

在影刀RPA里,断言用Python代码块实现——如果条件不满足,直接抛出异常,流程停止并记录失败原因。

在这里插入图片描述

模块三:测试结果记录

# 测试报告数据结构
test_results = []

def run_test_case(test_name, test_func):
    """运行一个测试用例,记录结果"""
    start_time = time.time()
    try:
        test_func()
        test_results.append({
            'name': test_name,
            'status': '通过',
            'time': time.time() - start_time,
            'error': None
        })
    except AssertionError as e:
        screenshot(f'FAIL_{test_name}')  # 失败时截图保留现场
        test_results.append({
            'name': test_name,
            'status': '失败',
            'time': time.time() - start_time,
            'error': str(e)
        })
    except Exception as e:
        screenshot(f'ERROR_{test_name}')
        test_results.append({
            'name': test_name,
            'status': '错误',
            'time': time.time() - start_time,
            'error': str(e)
        })

模块四:生成测试报告

在这里插入图片描述

TEMU店群矩阵自动化运营核价报活动

测试完成后自动生成报告并发送:

def generate_report(results):
    """生成HTML格式测试报告"""
    pass_count = sum(1 for r in results if r['status'] == '通过')
    fail_count = sum(1 for r in results if r['status'] != '通过')
    
    # 发到企微群
    report_text = (
        f"## 🧪 自动化测试报告\n"
        f"> 测试时间:{datetime.now().strftime('%Y-%m-%d %H:%M')}\n\n"
        f"| 状态 | 数量 |\n"
        f"| --- | --- |\n"
        f"| ✅ 通过 | {pass_count} |\n"
        ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a2b1d5a97bcf441ab06556f9a3862501.png#pic_center)

        f"| ❌ 失败 | {fail_count} |\n\n"
    )
    
    # 失败用例详情
    for r in results:
        if r['status'] != '通过':
            report_text += f"- **{r['name']}**:{r['error']}\n"
    
    send_wecom_message(report_text)

典型测试场景

测试场景 验证内容 优先级
登录功能 正确账号密码能否登录成功 最高
核心业务流程 下单/采集/导出等主流程是否正常 高
边界值 空输入/超长输入/特殊字符的处理 中
权限控制 不同角色能否访问对应功能 中
页面元素 关键按钮/文字/链接是否存在 低

落地建议

  • 从"冒烟测试"开始:只测最关键的5个功能,确保核心流程没有被改坏

  • 每次上线前自动跑一遍:用影刀的定时任务,代码发布后自动触发测试

  • 失败截图很重要:要知道失败时页面是什么样子

  • 在这里插入图片描述

  • 不要追求100%覆盖:80%关键场景覆盖,比100%覆盖但维护成本爆炸要好


#影刀RPA #RPA自动化 #自动化测试 #UI测试 #回归测试

作者:林焱

在这里插入图片描述

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
在这里插入图片描述

更多推荐