赛普拉斯测试的随机元素选择

demouser123:

目前正在测试本地电影预订网站,我必须在其中输入选定电影的一定数量的门票。附件屏幕的屏幕截图-

在此处输入图片说明

用于重现问题的存储库-https: //github.com/zac11/iCinema

  1. 克隆仓库。
  2. 进入client目录并执行npm i
  3. npm start从根目录运行
  4. Webapp将在 localhost:3000

我希望能够以一种随机的方式输入所选电影的电影票,以便它从四个中选择一个随机的票类别,然后输入一个票号,例如2

现在,我可以通过以这种方式对定位器进行硬编码来填充票证类别-

  cy.get('div.tickets-info > div:nth-child(1) > span > b').type(3,{force:true});

输入Junior Ticket类别的票数我希望能够随机输入四个类别中任何一个类别的票证,而不必对类别定位符进行硬编码。

PS-该存储库还包含赛普拉斯测试,也可以使用 npm run test

丹尼斯·蔡:

您可以根据以下内容对类别进行随机化:

const picked = Math.floor(Math.random()*3); // this gives you a random value from 0 - 3;

// using template string literals - we can add that into picked
cy.get(`div.tickets-info > div:nth-child(`${picked}`) > span > b`).type(3, {force: true})

摘自-您可以拥有与类别相关的元素数组:

const categories = ["Junior", "student", "normal", "senior"]

您也可以将票证的值categories作为对象,并将其用于计算总数。

const categories = [{
  type: "junior", 
  value: 5
}, {
  type: "student",
  value: 3
}, {
  type: "normal"
  value: 10
}, {
  type: "senior",
  value: 3
}]

你可以说,使用拣选值来计算总金额

const value = categories[picked].value * random_amount;
cy.get(".sum-field label:nth-child(1)").should("contain", value) // total

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章