软件风向标,重度软件行业发展门户!

文章更新 | 热门文章
您的位置: 首页  →  攻略 → 《av night攻略 Silentnight

av night攻略 Silentnight

2023-06-01 15:30:04      小编:      我要评论

如何获取接口返回数据?

如何在 JavaScript 接口数据通过接口自动生成和返回?

界面测试经常发生在自动化测试中,或者使用的数据需要从界面返回,那么如何实现这种情况呢?
比如我想通过 generateLicense 生成一种方法 license,然后在后续的自动化测试用例中使用此生成 license 继续下一步,比如注册 license 等。

在 license.js 在文件中创建一个 generateLicense 方法:

generateLicense: function(success, day, capacity, code) { var request = require('request'); var options = { method: 'POST', url: 'https://generate-license/api/licenses', headers: { 'postman-token': 'd849e636-58c9-2705', 'cache-control': 'no-cache', authorization: 'Basic YWRtaW46U', 'content-type': 'application/json' }, body: { company: 'Google', email: '5012962@qq.com', expiration: day, capacity: capacity, phone: '89262518', address: 'Dalian', code: code }, json: true }; request(options, function (error, response) { if (error) { console.log(error); return; } success(response); });},

上面生成的 license 赋值可用于后续测试用例 MVlicense 了。
异步操作将涉及到使用。如何操作异步,请参阅以前的文章。

const license = client.page.license();let MVlicense;license.generateLicense(function(response) { MVlicense = response.body.data.license.license;}, 365, 10, 'MV');等待按钮文本变更

在使用 Nightwatch 在进行自动化测试时,会遇到这样的情况:
需要创建一个 query,等这个 query 的状态从 Wait 变成 Running 最后到 Available 执行后续操作。Nightwatch 没有这样的方法可以通过以下方式解决。

'Wait for text': function waitForText(client) { const query = client.page.query(); query.navigate(); for (let i = 0; i <= 10; i ) { client.getText('status', function (result) { if (result.value.indexOf('Available') == 0) { this.break; } else { client.pause(1000); i ; } }); } // TODO something}测试用例失败继续执行

在自动化测试中,有一个验证点,当测试通过时,以下测试脚本将继续执行;
当出现异常时,您希望标记错误,但不影响以下测试脚本的执行 Nightwatch 中如何做?

下一段代码验证 home 页面的 body 是否显示。如果在这里显示,则将验证点放置为 false,如下:

home.waitForElementVisible('@body', 3000, true, function(result) { if (result.value) { // 测试报告显示失败,但以后的测试脚本将继续执行 client.verify.equal(result.value, false); } else { // 验证点通过 console.log('Pass'); }});

注:如果在这里使用 assert,程序将中断执行。

// 中断执行client.assert.equal(result.value, false);打开多个窗口

如果你想打开两个窗口并控制窗口呢?

var url = process.env.BASE_URL, newWindow;client.execute(function (url, newWindow) { window.open(url, newWindow, 'height=768,width=1024'; [url, newWindow]);client.window_handles(function(result) { this.verify.equal(result.value.length, 2, 'There should be 2 windows open'); newWindow = result.value[1]; this.switchWindow(newWindow);})持续集成问题

自动化测试用例持续集成时会遇到哪些问题?

由于某些错误程序卡住异常处理,运行时间过长

通过以下三种方式解决上述三种情况。

运行时间过长, E2E 不可避免地需要时间等待来测试脚本,比如

this.pause(1000);// 尽可能多些 pause 换成 wait,例如:this.element('@columns').to.be.visible.before(2000);// 或this.waitForElementVisible('@columns', 5000);

因为有些错误的程序卡住了, 在 TestCase 例如,在验证中

this.assert.equal(result.value.length, 1);// 如果您只想标记失败并继续执行以下代码,则需要 assert 换成 verifythis.veriry.equal(result.value.length, 1);// 在 waitForElementVisible 中加 abortOnFailure 设置为参数 false,在 wait 加班时,会标记为 false 继续执行this.waitForElementVisible('@columns', 5000, false);//还可以通过在 nightwatch.conf.js 设置全局变量abortOnAssertionFailure: false

异常处理

当程序执行运行一次时,程序运行正常。一旦出现异常,下次执行将出错。
例如:例如,邀请帐户登录系统的操作。管理员添加一个新用户,然后用新用户登录,然后管理员删除该帐户。但是,如果删除该帐户失败,下次执行该程序并邀请该帐户时,将提示该帐户存在。也许此时此程序无法执行。此时,有必要考虑这些异常情况,以确保程序能够很好地执行。

如何在 VS 里调试 Nightwatch

除通过增加 log 之外

console.log('===========')

来调试 Nightwatch 如何通过配置代码 VS code 来 Debug Nightwatch 代码?

Ctrl Shift D 打开 Debug 界面,配置如下:

{ // Use IntelliSense to learn about possible Node.js debug attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://img.efusc.com/gonglue/20230601/wm4nqpgo11y "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "name": "npm test", "program": "${workspaceRoot}/node_modules/nightwatch/bin/runner.js", "args": [ "tests/DQA/DQA-221/login.js" ] } ]}

这样可以打断调试点。

攻略[共136302款]

av[共2款]

night[共11款]

Silentnight[共1款]

  • 发表评论
资讯排行 资讯中心 热门专区 软件评测
软件排行榜 软件攻略 软件下载 软件开测表
软件排行榜 软件礼包 软件下载 新软件测表
安卓排行榜 软件视频 软件下载
苹果排行榜