我有一个 Django 项目,其中一些页面使用 React 来增强用户体验。我想创建集成测试以确保这些页面随着时间的推移不会出现回归。经过一番挣扎,我选择了测试nightwatch.js。
我有专门用于测试运行的网络服务器localhost:8500,我希望 nightwatch.js 完成的所有查询都在该服务器上进行。我这样配置测试工具:
...
"test_settings" : {
"default" : {
"launch_url" : "http://localhost:8500/",
...
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何使用这个设置。当我使用该init()方法时,看起来测试卡在主页上......例如,通过此测试:
module.exports = {
'Test account login in /admin': function (browser) {
browser.init().url('/admin/')
.waitForElementVisible('body', 1000)
.setValue('#id_username', 'username')
... + click, wait, check results
.end();
}
};
Run Code Online (Sandbox Code Playgroud)
...失败,我可以看到这是因为浏览器仍在主页上(代码中的一些断言显示了我主页中的元素)。
这里有什么问题?如何使浏览器在特定 URL 上初始化?
我有数组:
all [a,b,ac,d, A]
Run Code Online (Sandbox Code Playgroud)
我想在这个中找到包含子字符串“a”(“A”)的所有元素,使用来自 lodash 的过滤器并将它们推送到另一个 - 到 filterTab
const item = "a"
Run Code Online (Sandbox Code Playgroud)
我尝试这样:
import { some, method, differenceWith, isEquel } from 'lodash';
const filterTab = [];
filterTab.push (some(all, method('match',/item/i)));
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
下一步如果它有效 - 它将是这样的:
var dif = differenceWith(filterTab, array3, _.isEqual);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它不起作用......
与剧作家一起进行屏幕截图测试的好方法是什么?
如果我真的理解的话,我需要截图,如下所示:
it('Some test', async () => {
page.screenshot({ path: 'screenshot.png' });
}
Run Code Online (Sandbox Code Playgroud)
但我如何将它与标准具屏幕截图进行比较呢?如果我错过了文档中的某些内容,请告诉我
我正在尝试使用 Cypress 12.3 为 Web 应用程序编写 E2E 测试。在旅程的某个部分,应用程序向端点“ api/v2/accountApplication/getApplicationInfo?uuid=xxxxxxx ”发出GET请求。该请求的响应包括一个名为“ abChoice.welcome ”的字段,其值为“a”或“b”。该值用于我的 Vue 应用程序中的 A/B 测试。响应的结构如下:
{
"resultStatus": true,
"errorCode": 0,
"errorMessage": null,
"resultData": {
"abChoice": {
"welcome": "a"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个测试来检查此请求的响应,并根据“abChoice.welcome”的值做出不同的断言。我尝试使用cy.intercept命令来检查响应,但它没有按预期工作。我还尝试为请求创建别名并使用cy.wait(@myAliasName),但 Cypress 抛出错误并表示从未发出请求,即使我可以在日志中看到该请求。
describe('A/B testing', () => {
it('shows A or B pages', () => {
cy.intercept('GET', '**/accountApplication/getApplicationInfo', req => {
const { body } = req
cy.log(body)
if (body.resultData.abChoice.wlecome === 'a') {
cy.log('A')
// assert something
} else {
cy.log('B')
// …Run Code Online (Sandbox Code Playgroud) 我有一个无线电元素<input type="radio" name="gender" value="male" />
下面是我的赛普拉斯代码
cy.getAllByRole("radio").first().click()
如何获取 radio 元素的 value 属性?像这样的东西
const radioValue = cy.getAllByRole("radio").first().getValue() //"male"
javascript jquery e2e-testing cypress cypress-testing-library
e2e-testing ×5
javascript ×4
cypress ×2
jquery ×1
lodash ×1
playwright ×1
testcafe ×1
testing ×1