【问题标题】:How do you copy response values to the clipboard in Postman javascript tests?如何在 Postman javascript 测试中将响应值复制到剪贴板?
【发布时间】:2021-07-08 21:48:19
【问题描述】:

我最近发现了 postman 使用 javascript 编写预请求和测试脚本的能力。

我正在尝试确定是否可以在测试期间将值复制到剪贴板以及设置 postman 环境变量。

例如:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable ("Action ID", jsonData.ActionId);
// set jsonData.ActionId to clipboard

【问题讨论】:

  • 最基本最简单的答案是……不。您可以在可视化工具中使用一些魔法来获取要复制到剪贴板的值,但仅此而已,并且在请求之后也会发生。
  • 你为什么要这样做?
  • 我有一个项目,需要我不断地通过邮递员获取 API 调用生成的 ID 值。目前我花了很多时间运行该操作,然后将其复制粘贴到其他地方。

标签: javascript testing postman


【解决方案1】:

有一种方法可以实现,通过使用可视化工具并引入clipboard.js CDN。

这是非常基本的,但是通过将此脚本添加到Tests 选项卡,您可以在响应部分的Visualize 选项卡中看到变量值。

pm.environment.set("Action_ID", pm.response.json().ActionId);

let template = `
<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script>
</head>
<body>
    <div>
    <div>
        <pre><code style="width:max-content!important;" id="copyText">${pm.environment.get('Action_ID')}</code></pre>
    </div>
    <button class="copyButton" type="button" data-clipboard-action="copy" data-clipboard-target="#copyText" style="background:green;color:white;">Copy to Clipboard</button>
    </div>
</body>
</html>
<script>
    var clipboard = new ClipboardJS('.copyButton');

    clipboard.on('success', function(e) {
        e.clearSelection();
        e.trigger.textContent = '✔ Copied!';
        window.setTimeout(function() {
            e.trigger.textContent = 'Copy to Clipboard';
        }, 2000);
    });
    clipboard.on('error', function(e) {
        e.clearSelection();
        e.trigger.textContent = '✗ Not Copied';
        window.setTimeout(function() {
            e.trigger.textContent = 'Copy to Clipboard';
        }, 2000);
    });

</script>`

pm.visualizer.set(template, pm.response.json())

【讨论】:

  • 哇,这真的很有趣,我没想过这样的方法。谢谢
猜你喜欢
  • 1970-01-01
  • 2021-10-30
相关资源
最近更新 更多