使用浏览器脚本
浏览器测试通过通过浏览器回放基于 Node.js 的测试脚本来模拟用户通过 Web 应用程序可能采用的路径,以监视和度量用户 Web 站点的性能。
Instana Synthetic 浏览器测试支持基于 Selenium的 API ,并通过超过 30 个 浏览器测试 API来扩展浏览器测试功能。
此外, Instana Synthetic 还引入了一组 全局变量 和 API ,使浏览器测试更容易,可维护且安全。
通过使用此功能,脚本开发者可以主要关注其测试逻辑,而不是安装浏览器和驱动程序,打开和关闭浏览器以及释放资源。
先决条件
合成 PoP Helm Chart 1.0.15 或更高版本支持 Instana 浏览器测试。
新的回放引擎用于运行这些测试。 必须将合成 PoP 版本 升级 到 1.0.15 或更高版本,才能启用浏览器回放引擎。
要检查合成 PoP Helm Chart 的版本,请运行以下命令:
helm list -n <namespace>
要检查是否启用了用于浏览器测试的新回放引擎,请运行以下命令:
kubectl get pod -n <namespace> | grep browserscript
synthetic-pop-browserscript-playback-engine-8589bb6cbf-dh7sb 1/1 Running 0 13m
支持的运行时和功能
Instana Synthetic 浏览器测试支持 Chromium , Mozilla Firefox和 Node.js 运行时。
- Mozilla Firefox 115.4.0esr
- Chromium 102.0.5005.0
- Node.js v18
- selenium-webdriver 4.20.0
Instana Synthetic 浏览器测试支持基于 Selenium的 API 和超过 30 个浏览器测试 API。
Instana Synthetic 浏览器测试支持分析和收集度量值,例如响应时间和响应大小。
Instana 合成浏览器测试支持测试结果中的录音、屏幕截图、浏览器日志、控制台日志和 HTTP 存档格式 (HAR)。
浏览器脚本测试类型
通过 Instana Synthetic ,您可以创建以下浏览器脚本测试:
浏览器脚本
浏览器脚本基于 Node.js ,同时包含 single 和 bundled 脚本。
浏览器脚本:单一浏览器测试脚本
您可以在单个脚本中编写所有内容。 通常,这种方式可以满足大多数用户的需求。 请参阅以下示例:
(async function () {
console.log("Access IBM website");
await $browser.get("https://www.ibm.com/us-en");
console.log("Accept all cookies");
const cookies = await $browser.waitForAndFindElement(
$driver.By.id(`truste-consent-button`),
30000
);
await cookies.click();
})();
浏览器脚本:捆绑浏览器测试脚本
如果业务逻辑很复杂,请不要在单个脚本中包含所有内容。 在 GitHub中使用多个脚本文件以实现更好的维护,代码复用和版本控制。
可以在压缩文件中使用捆绑脚本。
使用共享库编写多个脚本。 请参阅以下示例:
// bundled/mytest.js const assert = require("assert").strict; let { testIBM } = require("./lib/myscript.js"); console.log("Start to test"); testIBM();
// bundled/lib/myscript.js async function testIBM() { console.log("Access IBM website"); await $browser.get("https://www.ibm.com/us-en"); console.log("Accept all cookies"); const cookies = await $browser.waitForAndFindElement($driver.By.id(`truste-consent-button`), 30000); await cookies.click(); }; module.exports = { testIBM };
将多个脚本打包到
.zip
文件中。 请参阅以下示例:将脚本压缩到具有顶级文件夹
bundled
和主文件bundled/mytest.js
的.zip
文件中。zip -r bundledtest.zip bundled
或者使用主文件
mytest.js
将所有脚本打包到.zip
文件中。zip -r bundledtest.zip *
Selenium IDE 脚本
Selenium IDE 脚本 是 Selenium IDE 记录的脚本。
浏览器脚本示例
Instana Synthetic 提供了许多 示例,这些示例可帮助您快速入门或快速编写自己的浏览器测试。
要开始使用,请参阅以下示例:
浏览器脚本测试和调试
Instana Synthetic 提供 Node.js 命令行应用程序 synthetic-browser-script
,以帮助用户在本地开发,测试或调试浏览器测试脚本。
synthetic-browser-script 应用程序现在在 GitHub 和 npmjs 站点中可用。
它是 Instana Synthetic 的本地运行程序,可帮助您进行合成浏览器测试。
它随附许多 示例,可帮助您快速编写自己的浏览器测试。 将添加更多示例。
在以下情况下,可以使用 synthetic-browser-script
本地运行器:
您需要本地运行器才能使用 CLI 测试和调试浏览器脚本。
您需要提供所有 Instana Synthetic 浏览器测试 API 的 npm 包。
对于所有浏览器测试 API ,您需要 VS Code 中的 "代码完成" 或 "代码提示"。
您需要一个打开的完整浏览器来完成测试操作并证明脚本的质量。
您需要在本地重现测试失败,以帮助调试根本原因。
您需要从浏览器测试 API 的示例中学习,然后根据这些示例编写自己的浏览器测试。