加速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方案。

目录
相关文章
|
1月前
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
41 1
|
2月前
|
SQL 安全 测试技术
Web应用程序安全测试
Web应用程序安全测试
|
2月前
|
Web App开发 编解码 前端开发
面试题22:如何测试Web浏览器的兼容性?
面试题22:如何测试Web浏览器的兼容性?
|
3月前
|
存储 缓存 监控
Web 应用程序性能测试核心步骤
Web 应用程序性能测试核心步骤
|
1月前
|
安全 测试技术 API
请描述在 Python WEB 开发中常用的测试方法。
请描述在 Python WEB 开发中常用的测试方法。
16 0
|
1月前
|
Web App开发 前端开发 测试技术
Web应用程序测试工具Selenium用法详解
Web应用程序测试工具Selenium用法详解
37 0
|
2月前
|
Web App开发 测试技术 数据安全/隐私保护
Web自动化测试工具Selenium
Web自动化测试工具Selenium
|
2月前
|
人工智能 前端开发 Java
软件测试/人工智能|熟练使用web控件定位技巧,提升测试工作效率!
软件测试/人工智能|熟练使用web控件定位技巧,提升测试工作效率!
196 1
|
2月前
|
JavaScript Java Python
Web自动化三种等待方式,一篇文章教会你
Web自动化三种等待方式,一篇文章教会你
65 1
|
2月前
|
编解码 缓存 前端开发
Web浏览器的兼容性测试需要考虑哪些测试点?
Web浏览器的兼容性测试需要考虑哪些测试点?

热门文章

最新文章