资讯专栏INFORMATION COLUMN

一篇文章掌握nightwatch自动化测试

canopus4u / 907人阅读

摘要:是一个自动化测试框架,被深度整合进来。这篇文章就来带着大家入门搭建这么一个测试框架。项目配置默认使用项目根目录的作为配置文件。官网也有另外一种配置文件的格式就是。

nightwatch.js是一个web-ui自动化测试框架,被vue-cli深度整合进来。如果一个项目是基于vue-cli搭建的,基本可以做到开箱即用。

但是我们不可能一直都使用vue-cli。因为它很多时候不能够满足我们的定制化需求。我们很多时候会对构建框架进行定制,或者完全重新搭建。这个时候整合进来nightwatch就会很困难。这篇文章就来带着大家入门搭建这么一个测试框架。

所需环境

首先在项目里面安装nightwatch,切换到项目目录

npm intall nightwatch -D

安装这个还不够,还需要安装selenium-server,同样可以使用npm安装

npm install selenium-server -D

selenium-server是基于Java开发的,作用是用来连接浏览器的。所以安装selenium-server之前需要安装java。如何安装Java?

除此之外还需要安装一个浏览器驱动器,一般我们使用chrome做测试

npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedrive -D

直接安装chromedriver会提示安装不成功,需要手动指定镜像地址

至此需要下载的部分已经下载完成。

项目配置

nightwatch默认使用项目根目录的nightwatch.conf.js作为配置文件。官网也有另外一种配置文件的格式就是nightwatch.json。这里我们使用js的配置方式,因为格式更灵活。

下面这个就是一个简单的配置文件。

module.exports = {
    "src_folders": [
        "e2e/case"
    ],
    "output_folder": "reports",
    "custom_commands_path": "",
    "custom_assertions_path": "",
    "page_objects_path": "",
    "globals_path": require("./e2e/config/global.config").path,
    "selenium": {
        "start_process": true,
        "server_path": require("selenium-server").path,
        "log_path": "",
        "host": "127.0.0.1",
        "port": 4444,
        "cli_args": {
            "webdriver.chrome.driver": require("chromedriver").path
        }
    },
    "test_settings": {
        "default": {
            "launch_url": "http://localhost",
            "selenium_port": 4444,
            "selenium_host": "localhost",
            "silent": true,
            "screenshots": {
                "enabled": false,
                "path": ""
            },
            "desiredCapabilities": {
                "browserName": "chrome",
                "marionette": true
            }
        },
        "chrome": {
            "desiredCapabilities": {
                "browserName": "chrome"
            }
        },
        "edge": {
            "desiredCapabilities": {
                "browserName": "MicrosoftEdge"
            }
        }
    }
}

src_folders:表示的就是case所在的文件夹

output_folder:代表的是报告输出的文件夹

selenium下面的server_path:代表的是selenium-server的安装路径

selenium下面的start_process:代表的是是否自动启动selenium——server,入股设为false,不会自动启动server。

"cli_args" : {
      "webdriver.chrome.driver" : "",
      "webdriver.gecko.driver" : "",
      "webdriver.edge.driver" : ""
    }

cli_args下面的driver表示几个driver的安装路径,分别安装成功就可以了

test_settings是传给nightwatch实例的数据,这里面可以配置多个环境,default是必须有的,其他环境可以自行配制。

nightwatch --env default

然后我们在项目里运行以上命令。

在windows发现报错了,运行不起来的。我们需要在package.json下面配置一下

"scripts": {
    "e2e": "nightwatch --env default",
  },

这就可以正常运行了。

如果需要看到真实的效果,我们在case文件夹下面创建一些case就可以了

比如:

module.exports = {
    "Test login": function (browser) {
        browser
            .windowMaximize()
            .url("https://trans.qa.17u.cn/saas")
            .waitForElementVisible(".login", 3000)
            .assert.urlContains("/saas/login")
    }
    
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98418.html

相关文章

  • 搭建自己的前端动化测试脚手架(二)

    摘要:建立的配置信息。在此我们安装的以便使用进行测试。如果您在搭建过程中遇到困难,您可以从获取在下已经搭建好的接下来接下来就是专心写测试用例了,距离成功越来越近了不过今天就到这里结束,我们下一章见下一篇搭建自己的前端自动化测试脚手架三 上一篇:搭建自己的前端自动化测试脚手架(一)By LancerComet at 18:38, 2016.07.17. 欢迎转载,转载时还请保留作者署名。 嗨,...

    villainhr 评论0 收藏0
  • 使用Nightwatch进行E2E测试中文教程

    摘要:本身项目也是使用来测试的。一个简易的模式的配置如下的分为四个部分在实例上以开头的行为驱动测试风格的接口,及以上版本可用。例如以开头的两套相同的方法库,区别是如果断言失败则退出整个测试用例所有步,则打印后继续进行。 E2E测试 E2E(end to end)测试是指端到端测试又叫功能测试,站在用户视角,使用各种功能、各种交互,是用户的真实使用场景的仿真。在产品高速迭代的现在,有个自动化测...

    newsning 评论0 收藏0
  • Nightwatch.js – 轻松实现浏览器的自动测试

    摘要:是一个易于使用的,基于平台的浏览器自动化测试解决方案。它使用强大的来在元素上执行命令和断言。只需使用和选择器,不需要初始化其他对象和类,您只需要编写测试规范。项目地址在安装安装然后运行测试的测试使用了测试框架写成,运行编撰 showImg(http://segmentfault.com/img/bVbXaE); Nightwatch.js Nightwatch.js 是一个易于使用...

    骞讳护 评论0 收藏0
  • 【全栈React】第26天: 集成测试

    摘要:我们将用集成测试来结束我们的测试部分。作为对集成测试的一个提醒它是自动化我们的实际用户在使用我们的应用时体验到的体验的过程。出于我们的目的我们将只使用上面的基本配置因为它已经足够让集成测试继续进行。 本文转载自:众成翻译译者:iOSDevLog链接:http://www.zcfy.cc/article/3808原文:https://www.fullstackreact.com/30-d...

    fnngj 评论0 收藏0
  • 搭建自己的前端动化测试脚手架(三)

    摘要:如果您在进行模拟鼠标的测试,您的鼠标指针可能会干扰您的测试,因此建议运行测试后将您的指针移动至屏幕外部,以避免干扰到浏览器测试。 上一篇:搭建自己的前端自动化测试脚手架(二)By LancerComet at 23:47, 2016.07.22. 欢迎转载,转载时还请保留作者署名。 这是最后一章了!(・∀・)之前我们配置好了我们的脚手架工具,现在可以编写测试用例了! 开始编写测试用例 ...

    seanlook 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<