当前位置: 首页 > 知识库问答 >
问题:

如何在Postman中使用请求前脚本从另一个请求运行一个请求

凤安然
2023-03-14

我正在尝试发送一个经过身份验证的请求,只需点击邮递员。

所以,我有一个名为“Oauth”的请求,我正在使用测试将令牌存储在局部变量中。

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", jsonData.access_token);

我现在要做的是,对于需要承载令牌的任何其他请求,自动运行Oauth请求(从预请求脚本)。

有没有一种方法可以通过单击邮递员按钮来获取访问令牌并发送经过身份验证的请求?

共有3个答案

洪昊然
2023-03-14

有点晚了,但是对于其他看到这篇文章的人来说,现在可以从请求前脚本部分发送另一个请求了。这里有几个例子:https://gist.github.com/sid405/b57985b0649d3407a7aa9de1bd327990

宰父桐
2023-03-14

注意:现在有一种方法可以在预请求脚本中执行此操作,请参阅其他答案。我将把这个答案留给子孙后代,但只是让每个人都知道:)

我认为在预请求脚本中还没有实现这一点的方法,但如果使用变量和测试选项卡,只需单击几下即可。邮差博客上有更完整的说明,但其要点是:

>

  • 像平常一样设置身份验证请求
  • 在该请求的测试部分,将该请求的结果存储在变量中,可能类似于以下内容:

    var data = JSON.parse(responseBody);
    postman.setEnvironmentVariable("token", data.token);
    

    运行身份验证请求——您现在应该看到为该环境设置了令牌(单击右上角的眼形图标)。

    要刷新令牌,您需要做的就是重新运行身份验证请求。

  • 徐皓君
    2023-03-14

    正如KBusc所提到的,受这些示例的启发,您可以通过设置如下预请求脚本来实现目标:

    pm.sendRequest({
        url: pm.environment.get("token_url"),
        method: 'GET',
        header: {
            'Authorization': 'Basic xxxxxxxxxx==',
        }
    }, function (err, res) {
        pm.environment.set("access_token", res.json().token);
    });
    

    然后您只需引用{{access\u token}}作为任何其他环境变量。

     类似资料:
    • 我正在Postman中编写测试,我有多个请求分组如下: > 某些测试标题: > 创建用户(一组“预请求”): 发送一些创建用户所需的请求,这些请求是运行测试所必需的 对已创建用户的一些操作(这里我正在测试测试标题中的内容) 一个或多个请求 < li >创建用户(一组“预先请求”,与测试1中相同。): < ul > < li >发送创建用户、运行测试所需的一些请求 一个或多个请求 总的来说,当我想测

    • 我正在用Application/JSON数据发送原始POST请求到邮递员服务器。我需要使用这个JSON对象,并在请求前脚本中追加一些数据。但是我只能找到如何访问环境变量,而不能请求主体。有人知道吗?谢了!

    • 我尽力描述我的处境。我的wicket站点包含list wicket组件,其中每个列表元素都有另一个列表。最低级别列表中的每个元素都有下载某个文件的ajax wicket链接。这一切都很好。我习惯了这种懒散的行为。此行为的方法startDownload在link onClick方法中调用。

    • 出身背景 我将React Native中内置的应用程序连接到REST API。我通过Axios处理请求,并使用Redux存储查询结果。我有一个api连接的index.js文件,它保存了作为请求处理程序的函数,这些请求需要越来越深的授权级别。我有一个简单的函数返回访问令牌,这是由以下代码触发,当前位于应用程序的“欢迎页面”。 理想情况下,在浏览几个屏幕后,用户将进入主页并触发以下代码: 到目前为止,

    • 如何在JMETER中创建一个测试,该测试将: 总共提出100个请求,但是使 每4次请求站点A和 每5次请求站点B

    • 我有一个对服务器的Authenticate post调用,如下所示: 用这样的尸体: 我总是必须在Postman中执行两次这个Authenticate调用,以正确填充我的全局var“安全令牌”,并在此后的下一次调用中使用该令牌进行身份验证,因此,似乎预请求脚本实际上是在脚本之后运行的,或者是预请求脚本中设置的全局var对当前请求不容易可用? 我做错了什么? 以下是预先请求的SRIPT: