addInitScript()
添加一个脚本,该脚本将在以下场景之一中执行
脚本在文档创建后但在其任何脚本运行之前执行。这对于修改 JavaScript 环境很有用,例如覆盖 Math.random
。
返回值
类型 | 描述 |
---|---|
Promise<void> | 一个 Promise,在脚本添加到浏览器上下文时解析。 |
示例
import { browser } from 'k6/browser';
import { check } from 'https://jslib.k6.io/k6-utils/1.5.0/index.js';
export const options = {
scenarios: {
browser: {
executor: 'shared-iterations',
options: {
browser: {
type: 'chromium',
},
},
},
},
};
export default async function () {
const browserContext = await browser.newContext();
// This will execute and override the existing implementation of Math.random.
await browserContext.addInitScript('Math.random = function(){return 0}');
const page = await browserContext.newPage();
// In this example we are going to set the content manually, so we first
// navigate to about:blank which will execute the init script, before setting
// the content on the page.
await page.goto('about:blank');
await page.setContent(`
<html>
<head></head>
<body>
<div id="random">waiting...</div>
</body>
<script>
document.getElementById('random').textContent = Math.random();
</script>
</html>`);
await check(page.locator('#random'), {
'is zero': async random => await random.textContent() == '0'
});
await page.close();
}