加速Web自动化测试

简介: 一. 问题背景Web自动化测试,主要花费的时间在于UI自动化验收测试。特别是对于一些有工作流的Web应用来说,一个测试用例单次执行超过20分钟很正常。因此,如何去加速我们的测试用例执行,是每个测试人员必须要认真考虑的问题。

一. 问题背景

Web自动化测试,主要花费的时间在于UI自动化验收测试。特别是对于一些有工作流的Web应用来说,一个测试用例单次执行超过20分钟很正常。因此,如何去加速我们的测试用例执行,是每个测试人员必须要认真考虑的问题。

二. Headless浏览器方案

为了加快浏览器执行自动化命令的速度,我们选择Headless浏览器, phantomjs来作为自动化执行的浏览器,phantomjs不需要对页面进行渲染。因此可以大幅加快命令执行的速度。

三. 技术选型

我们基于selenium grid技术,来搭建phantomjs测试执行环境。

  • selenium-hub
  • selenium-node-phantomjs

这里我们利用docker来创建我们的上述环境。我们可以用docker compose来编排我们的环境。也可以独立创建。为了使大家更清楚,我们一步一步来创建phantomjs执行环境。

第一步

通过docker启动selenium hub服务
> docker run -d -P --name selenium-hub selenium/hub
启动后,进入http://localhost:4444/grid/console# ,查看hub的情况。

第二步

通过docker启动selenium-node-phantomjs节点,并注册到hub上。
> docker run -d --link selenium-hub:hub --name node-phantomjs akeem/selenium-node-phantomjs

这样,我们就完成了基本的selenium phantomjs执行环境的创建了。

img_b1003d7661e214751ec567602abc3514.png
node-phantomjs

执行测试用例

如下所示,test.py是一个基本的测试用例执行文件。

from selenium.webdriver.remote.webdriver import WebDriver

from time import sleep

import py.test

SELENIUM_HOST = "localhost"

SELENIUM_PORT = "4444"

def test_get_url():
    sleep(10)
    TEST_URL = "http://httpbin/html"
    driver = WebDriver("http://%s:%s/wd/hub" % (SELENIUM_HOST,     SELENIUM_PORT),desired_capabilities={"browserName": "phantomjs"})
    driver.get(TEST_URL)
    elem = driver.find_element_by_tag_name("h1")
    assert "Moby-Dick" in elem.text

运行

> python test.py

总结

Headless浏览器能够加速我们的测试用例执行,同时phantomjs是webkit内核,因此和利用chrome浏览器执行是效果一致的。
如果不是对页面渲染有很高要求的测试业务,推荐大家采用phantomjs方案。

目录
相关文章
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件
783 3
|
安全 NoSQL Shell
web渗透-SSRF漏洞及discuz论坛网站测试
SSRF(服务器端请求伪造)是一种安全漏洞,攻击者可诱使服务端发起任意请求,进而探测或攻击内网系统。常用于端口扫描、访问内部服务、读取本地文件等。常见防御包括限制协议、域名和IP,但可通过302跳转、短地址等方式绕过。
642 1
web渗透-SSRF漏洞及discuz论坛网站测试
|
安全 Linux iOS开发
Burp Suite Professional 2025.10 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.10 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
773 3
|
Java 测试技术 网络安全
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
622 0
Burp Suite Professional 2025.10 for Windows x64 - 领先的 Web 渗透测试软件
|
安全 JavaScript 前端开发
AppSpider 7.5.020 发布 - Web 应用程序安全测试
AppSpider 7.5.020 for Windows - Web 应用程序安全测试
373 0
|
安全 Linux iOS开发
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.9 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
781 0
Burp Suite Professional 2025.9 发布 - Web 应用安全、测试和扫描
|
安全 Linux iOS开发
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
969 0
Burp Suite Professional 2025.7 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
人工智能 安全 网络安全
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
752 4
Burp Suite Professional 2025.5 for Windows x64 - 领先的 Web 渗透测试软件
|
安全 Linux API
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描
Burp Suite Professional 2025.4 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
673 6
Burp Suite Professional 2025.4 发布 - Web 应用安全、测试和扫描