我最近发现了 postman 使用 javascript 编写预请求和测试脚本的能力。
我试图弄清楚是否可以在测试期间将值复制到剪贴板并结合设置 postman 环境变量。
例如:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable ("Action ID", jsonData.ActionId);
// set jsonData.ActionId to clipboard
最佳答案
有一种方法可以实现,通过使用可视化工具并引入 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())
关于javascript - 如何在 Postman javascript 测试中将响应值复制到剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67081665/