前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cypress接口自动化2-参数关联上个接口返回的数据传给下个接口

Cypress接口自动化2-参数关联上个接口返回的数据传给下个接口

作者头像
wencheng
发布2021-04-20 15:21:41
9650
发布2021-04-20 15:21:41
举报
文章被收录于专栏:python 自动化测试
前言

在接口自动化中经常会遇见参数关联的情况,例如登录成功获取的token需要传递给下个接口。

在cypress中可以使用.as()或者sessionStorage.setItem()方法保存数据给下个接口使用。

参数关联
方式1 .as()别名使用
代码语言:javascript
复制
/**
 * Create by dell on 2021/4/2
 * Author :wencheng
 * describe :获取token给下一个接口使用
 * */

describe("获取token给下一个接口使用", function () {
    it('参数关联', function () {
        cy.request({
            url: "/user/login/",
            method: 'POST',
            headers: {"Content-Type": "application/json"},
            body: {"username": 'keyou1', "password": '123456'}
        })
            .its('body.token').as('Token') //its()方法获取到token,用.as()赋值给Token
            .then(function () {
                cy.log(this.Token)
                cy.request({
                    url: "/configures/",
                    method: 'GET',
                    headers: {"Content-Type": "application/json", 
                              "authorization": "JWT " + this.Token},
                }).then(function (resp) {
                    //断言返回状态为200
                    expect(resp.status).to.eq(200)
                    //断言返回3条数据
                    expect(resp.body.count).to.eq(3)
                    cy.log(resp.body.results)
                })
            })
    });
})

运行结果

方式2. sessionStorage.setItem()

推荐使用sessionStorage.setItem 设置token,可以把各个接口剥离开(有利于后面做接口自动化)

使用方式

代码语言:javascript
复制
cy.wrap(sessionStorage.setItem("Token", this.token));
const token = sessionStorage.getItem("Token")
代码语言:javascript
复制
/**
 * Create by dell on 2021/4/2
 * Author :wencheng
 * describe :获取token给下一个接口使用
 * */
describe("获取token给下一个接口使用", function () {
    it('获取token', function () {
        cy.request({
            url: "/user/login/",
            method: 'POST',
            headers: {"Content-Type": "application/json"},
            body: {"username": 'keyou1', "password": '123456'}
        })
            .its('body.token').as('token')
            .then(function () {
                //设置token
                cy.wrap(sessionStorage.setItem("Token", this.token));
            })
    });
    it("获取用户信息", function () {
        cy.log(sessionStorage.getItem("Token"))
        const token = sessionStorage.getItem("Token")
        cy.request({
            url: "/configures/",
            method: 'GET',
            headers: {"Content-Type": "application/json",
                      "authorization": "JWT " + token},
            body: {"page": 1, "size": 10, "ordering": 1}
        }).then(function (resp) {
            expect(resp.status).to.eq(200)
            expect(resp.body.count).to.eq(3)
            cy.log(resp.body)
        })
    })
})

运行结果

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试 To share 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 参数关联
    • 方式1 .as()别名使用
      • 方式2. sessionStorage.setItem()
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档