Javascript 如何在Cypress中的API调用中将变量用作参数

Javascript 如何在Cypress中的API调用中将变量用作参数,javascript,automation,cypress,Javascript,Automation,Cypress,我从API调用中捕获一个值,并将其设置为变量。现在,我想在第二个API调用中将该变量用作URL参数。这对很多人来说可能非常简单,但我刚刚开始学习javascript,我所阅读和尝试的一切都不适合我。我很感激你能提供的任何帮助,如果你愿意,我很乐意补充细节 这个问题以前已经回答过很多次了(我至少给出了两个类似的答案和答案) 您基本上可以做两件事: 嵌套命令: it('test',函数(){ cy.request().then(resp=>{ 返回cy.visit(`/path/${response

我从API调用中捕获一个值,并将其设置为变量。现在,我想在第二个API调用中将该变量用作URL参数。这对很多人来说可能非常简单,但我刚刚开始学习javascript,我所阅读和尝试的一切都不适合我。我很感激你能提供的任何帮助,如果你愿意,我很乐意补充细节

这个问题以前已经回答过很多次了(我至少给出了两个类似的答案和答案)

您基本上可以做两件事:

  • 嵌套命令:

    it('test',函数(){
    cy.request().then(resp=>{
    返回cy.visit(`/path/${response.body}`);
    });
    });
    
  • 或者,如果你不喜欢回调地狱,有很多模式。这里有三个:

    (注意,在下面的示例中,与上面所示的嵌套相比,您不会得到任何好处,因为所有这些示例至少嵌套一次。但是,如果您需要多次嵌套,或者如果您需要在测试中稍后重用变量,并且不想将所有命令放入第一个回调中,则这些模式可能仍然更可取)

    it('test',函数(){
    让价值;
    cy.request().then(resp=>{
    value=response.body;
    });
    然后(()=>{
    返回cy.visit(`/path/${value}`);
    });
    });
    
    或者(通过Cypress'
    .as()
    抽象使用mocha上下文):

    it('test',函数(){
    让价值;
    cy.request().then(resp=>{
    cy.wrap(response.body).as('value');
    });
    cy.get('@value')。然后(value=>{
    返回cy.visit(`/path/${value}`);
    });
    });
    
    或者(直接使用摩卡上下文):

    it('test',函数(){
    cy.request().then(resp=>{
    //存储为摩卡上下文
    //(注意:在这个模式中,测试用例函数是非常重要的。)
    //常规的非箭头函数;并将回调传递给`。然后`
    //是一个箭头函数,因此您可以访问父级
    //通过“this”的词汇上下文
    this.value=response.body;
    });
    然后(()=>{
    返回cy.visit(`/path/${this.value}`);
    });
    });
    

  • 这已经被回答过很多次了(我至少给出了两个类似的答案和答案)

    您基本上可以做两件事:

  • 嵌套命令:

    it('test',函数(){
    cy.request().then(resp=>{
    返回cy.visit(`/path/${response.body}`);
    });
    });
    
  • 或者,如果你不喜欢回调地狱,有很多模式。这里有三个:

    (注意,在下面的示例中,与上面所示的嵌套相比,您不会得到任何好处,因为所有这些示例至少嵌套一次。但是,如果您需要多次嵌套,或者如果您需要在测试中稍后重用变量,并且不想将所有命令放入第一个回调中,则这些模式可能仍然更可取)

    it('test',函数(){
    让价值;
    cy.request().then(resp=>{
    value=response.body;
    });
    然后(()=>{
    返回cy.visit(`/path/${value}`);
    });
    });
    
    或者(通过Cypress'
    .as()
    抽象使用mocha上下文):

    it('test',函数(){
    让价值;
    cy.request().then(resp=>{
    cy.wrap(response.body).as('value');
    });
    cy.get('@value')。然后(value=>{
    返回cy.visit(`/path/${value}`);
    });
    });
    
    或者(直接使用摩卡上下文):

    it('test',函数(){
    cy.request().then(resp=>{
    //存储为摩卡上下文
    //(注意:在这个模式中,测试用例函数是非常重要的。)
    //常规的非箭头函数;并将回调传递给`。然后`
    //是一个箭头函数,因此您可以访问父级
    //通过“this”的词汇上下文
    this.value=response.body;
    });
    然后(()=>{
    返回cy.visit(`/path/${this.value}`);
    });
    });