我最近发现了postman使用javascript编写预请求和测试脚本的能力。我试图弄清楚在测试过程中是否可以将一个值复制到剪贴板,同时设置postman环境变量。例如:
var jsonData = JSON.parse(responseBody); postman.setEnvironmentVariable ("Action ID", jsonData.ActionId); // set jsonData.ActionId to clipboard
42fyovps1#
通过使用可视化工具并引入clipboard.js CDN,有一种方法可以实现这一点。这是非常基本的操作,但通过将此脚本添加到Tests选项卡,您可以在Visualize选项卡的响应部分中看到变量值。
clipboard.js
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())
j91ykkif2#
@丹尼·丹顿这是个超级聪明的解决方案。谢谢!这里有一个更简单的自动复制版本。不需要手动点击按钮。
const response = pm.response.json(); let template = `<html><body> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.11/clipboard.min.js"></script> <code style="width:max-content!important;padding:10px;display:block;" id="copyText">${response.token}</code> <button id="copyButton" type="button" data-clipboard-action="copy" data-clipboard-target="#copyText" style="background:green;color:white;">Copy to Clipboard</button> <script> new ClipboardJS('#copyButton') .on('success', function(e) { e.clearSelection(); }) .on('error', function(e) { e.clearSelection(); copyText.style.borderColor = 'red'; }); copyButton.click(); </script> </body></html>`; pm.visualizer.set(template);
2条答案
按热度按时间42fyovps1#
通过使用可视化工具并引入
clipboard.js
CDN,有一种方法可以实现这一点。这是非常基本的操作,但通过将此脚本添加到
Tests
选项卡,您可以在Visualize
选项卡的响应部分中看到变量值。j91ykkif2#
@丹尼·丹顿这是个超级聪明的解决方案。谢谢!
这里有一个更简单的自动复制版本。不需要手动点击按钮。