记录技术 · 生活

扫码关注公众号

用 Robot Framework 控制 Canvas 元素实践

背景

在自动化测试中,我遇到了一个问题:如何测试 Canvas 图表元素?

与常规 HTML 元素不同,Canvas 是作为一个整体区域对外暴露为一个大元素,内部的图表元素(如柱状图的柱子、地图的省份)不是独立的 DOM 元素,常规的 Selenium 点击方法无法定位到 Canvas 内部的特定位置。

UI 自动化测试中的链式调用设计

UI 自动化测试中的链式调用设计

一、问题

传统的 UI 自动化测试代码往往是这样写的:

def test_login_and_create_report():
    driver.get("/login")
    driver.find_element(By.ID, "username").send_keys("admin")
    driver.find_element(By.ID, "password").send_keys("admin123")
    driver.find_element(By.ID, "login-btn").click()

    driver.get("/reports")
    driver.find_element(By.ID, "new-report").click()
    driver.find_element(By.ID, "report-name").send_keys("测试报表")
    driver.find_element(By.ID, "save-btn").click()

    assert "创建成功" in driver.page_source

问题很明显:测试逻辑被一大堆底层操作淹没了,看不出主线流程。

UI 自动化测试的 POM 设计模式实践

UI 自动化测试的 POM 设计模式实践

一、背景

在 UI 自动化测试中,持续维护测试脚本的成本很高。页面稍微一改动,大量的测试用例就有可能失败,需要人工修改适配。

因此,有人提出了POM(Page Object Model)设计模式。核心思维是将页面结构和测试逻辑分离,使测试代码更易于维护和扩展。

用 Pabot 给 Robot Framework 提速

组里的自动化测试用例(接口用例)陆陆续续积累了三千多条,完整跑一遍已经需要将近3 个小时

Robot Framework 默认是单线程顺序执行用例的,但我发现大家写得挺好,用例之间并没有依赖关系,完全可以并行执行。我发现了一个叫 Pabot 的东西,是专门用于并行执行 Robot Framework 的库。