javascript 如何从Cypress项目中读取JSON文件?

rn0zuynd  于 2022-12-28  发布在  Java
关注(0)|答案(6)|浏览(242)

我刚开始使用cypress自动化,但遇到了JSON文件。
有人知道我该如何读取JSON文件吗?比如说,它位于../example/vehicle.json中。
我知道cypress是JavaScript,但在cypress项目中导入JQuery时也遇到了麻烦。

mftmpeh8

mftmpeh81#

据我所知,这是访问存储在json文件中的数据的"Cypress"方式。
ref: https://docs.cypress.io/api/commands/fixture.html#Accessing-Fixture-Data

cy.fixture('user').then((user)  => {
    var name = user.name
    var pass = user.password
})

其中"用户"是/fixtures/用户. json

{
    "name": "username",
    "password": "password1234"
}
lokaqttq

lokaqttq2#

嘿柏树怪胎我有成功使用它

cy.fixture(profile.json).then((user) => {
        // Delay each keypress by 0.1 sec
        cy.get('#username').type(user.email, { delay: 100 }).should('have.value', user.email)
        cy.get('#password').type(user.password)
      })
41ik7eoe

41ik7eoe3#

我从未与Cypress合作过,在查看文档时,我认为这可能会对您有所帮助

cy.fixture(filePath)
cy.fixture(filePath, encoding)
cy.fixture(filePath, options)
cy.fixture(filePath, encoding, options)

请访问https://docs.cypress.io/api/commands/fixture.html#Syntax

woobm2wo

woobm2wo4#

为了防止这对任何人都有帮助,有一个很好的方法可以用下面的行来实现:

cy.readFile('path/to/file.json/txt/yaml')

https://docs.cypress.io/api/commands/readfile.html

5cg8jx4n

5cg8jx4n5#

你可能会发现这对你的问题和组织你的项目很有用。假设你在这里有你的输入文件:

fixtures    
│
└───website
│      orders.json
│      ...
│
└───mobile
       subCancel.json
       ...

您可以创建一个support方法,返回给定json文件所在文件夹的名称:

getFolderForJson(jsonName) {
   let value;
   switch (jsonName) {
     case 'subCancel':
       value = 'mobile';
       break;
     case ... //add your custom cases
    }
   return value;
}

将JSON阅读逻辑放在一个命令中,以便在测试中重用:

Cypress.Commands.add('readJson', (jsonName) => {
  cy.fixture(jsonName).then(json => {
    return JSON.parse(JSON.stringify(json)
    );
  });
});

然后在测试操作/Assert中使用json文件属性:

let folder = new BasePage().getFolderForJson(jsonName);
cy.readJson(folder + '/' + jsonName + '.json').then((data) => {
   cy.get('selector').type(data.shippingAddress); //use your own json files/properties
}
s2j5cfk0

s2j5cfk06#

在fixtures文件夹中创建一个UserData.json文件,并按如下方式定义值:

{
  "Name": "Ghulam Nabi",
  "Password":"Admin123"
}

现在,在测试文件中

cy.fixture(‘UserData.json’).then((user) => { 

        cy.get(‘#txtUsername’).type(user.Name)
        cy.get(‘#txtPassword’).type(user.Password)

      });

这只是一个例子。你可以通过这个方法做很多事情。
免费提供:https://softans.com/get-user-data-from-json-file-in-cypress/

相关问题