k6系列之browser调研
调研
根据源码分析,k6的browser有三个大模块,一是browser
,一个是chromium
,还有一个是devices
。根据官方给的例子,第一个模块有详细使用案例。
由于browser
目前处于实验阶段,go源码中的chromium
模块并未打包进入k6的二进制文件中。根据下面查看到的源码,可以看到只是注册返回了browser
devices
两个模块。
1 |
|
也就是说,当你尝试如下,会报错无法使用,因为导入的chromium
为空。
1 |
|
browser模块的使用之设置cookie
由于所在登录网页有svg的验证码,尝试通过解析验证码的方式来登录,结果有点困难;因此转向寻找设置默认cookie来跳过身份识别直接登录网页。playwright
也有类似方法。k6本意上browser
最终会尽可能和playwright
的api一致,来使得大家不需重新学习新的api(官网说的)。
1 |
|
代码实现如下:
1 |
|
附k6 browser指标的意义:
这些指标是 Web Vitals 的一部分,Web Vitals 是一组被 Google 推荐的用于衡量网站性能的指标。
browser_web_vital_cls
(Cumulative Layout Shift): 衡量页面上元素的不稳定性,尤其是在加载期间。CLS 表示在页面生命周期内用户体验中不断发生的不期望的布局变化的累积分数。browser_web_vital_fcp
(First Contentful Paint): 标志着用户能够看到页面内容的时间点。具体来说,它是页面开始加载到浏览器绘制页面的第一个像素的时间。browser_web_vital_lcp
(Largest Contentful Paint): 衡量页面加载期间最大的可见内容块(例如图片或文本块)的渲染时间。LCP 提供了有关页面加载性能的重要信息。browser_web_vital_ttfb
(Time to First Byte): 衡量用户发起请求到接收到来自服务器的第一个字节所花费的时间。它反映了服务器响应的速度。
k6 browser和Playwright区别?
k6 browser我的理解(至于Playwright先按下不表,没有调查就没有发言权)
- 更真实模拟用户,可以多并发用户,以计算整体平均页面性能数据(这个可能是比Playwright更优秀的存在,毕竟单一一次测试结果未必可靠)
- 主要关注于整体性能测试,提供了页面级别的性能指标,而不是每个请求的详细数据(也许未来会支持?或者自行改源码)
- 支持可视化,对接influxdb和grafana(可视化存入influxdb发现有存储每个请求的数据,也许能做到细化?)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!