学习 NightWatch - 测试

test 测试

.pause()

// ...
// 暂停 1s
browser.pause(1000) 
// 暂停
browser.pause()
// ...

.debug()

// ...
export default {
    'demo test': async browser => {
        await browser.debug()
    }
}
// ...

捕获控制台信息

此命令仅适用于基于 Chromium 的浏览器,例如 Google Chrome 和 Microsoft Edge

// ...
export default {
    'demo test': browser => {
        browser
            .captureBrowserConsoleLogs((event) => {
                // type 输出类型:log、debug、info、error...
                // timestamp 记录控制台消息的时间
                // args value对象属性含日志
                console.log(event.type, event.timestamp, event.args[0].value);
            })
    }
}
// ...

捕获浏览器异常

该命令仅适用于基于Chromium的浏览器,如Google Chrome和Microsoft Edge

// ...
export default {
    'demo test': async browser => {
         await browser.captureBrowserExceptions((event) => {
            // event = {timestamp: number, exceptionDetails: {}}
            // timestamp 捕获 JS 异常的时间。
            // exceptionDetails 记录详细信息的对象
            console.log('>>> Exception:', event);
        });
    }
}
// ...

拍摄堆快照

此命令仅适用于基于 Chromium 的浏览器,例如 Google Chrome 和 Microsoft Edge

// ...
export default {
    'demo test': browser => {
        browser
            // .tackHeapSnapshot(SavePath: String, Callback?: () => void)
            .takeHeapSnapshot('heap_snaps/snapshot1.heapsnapshot');
    }
}
// ...

例子

// *******************************************************
// test 文件夹下
// *******************************************************

// 导入 浏览器对象 和 测试对象
import { NightwatchBrowser, NightwatchTests } from 'nightwatch';
// 导入页面对象
import { BaiduPage } from './page-objects/BaiduPage';
// 测试对象
const home: NightwatchTests = {
    // 自定义测试方法
    // 运行时会输出当前方法 key
    // 会自动传入浏览器对象
    "测试百度": (browser: NightwatchBrowser) => {
        // 浏览器最大化
        browser.maximizeWindow()
        // 使用页面对象
        // browser.page 后跟随方法必须和在 page-objects 中的文件同名
        const BaiduPage: BaiduPage = browser.page.BaiduPage()
        BaiduPage
            // 跳转页面对象对应路径
            .navigate()
            // 断言 标题等于 百度一下,你就知道
            .assert.titleEquals('百度一下,你就知道')
            // 等待元素出现
            .waitForElementVisible('@SearchKeyWordInput')
            // 设置元素的 value
            .setValue('@SearchKeyWordInput', 'NightWatch')

        BaiduPage
            // 使用页面对象的方法
            .clickSearch()
            .waitForElementVisible('@SearchResultContainer')
            // 断言 元素 @SearchResultContainer
            .expect.element('@SearchResultContainer')
            // 文本 包含 nightwatchjs/nightwatchman - GitHub
            .text.contain('nightwatchjs/nightwatchman - GitHub')

        browser
            // 浏览器暂停
            .pause()
            // 结束浏览器
            .end()
    }
};

export default home;

学习 NightWatch - 测试
http://localhost:8080/archives/35d93004-717e-41df-a287-1a96f88a6cc7
作者
inksha
发布于
2024年09月14日
许可协议