• 1
  • 0
分享

1、引言

在使用Locust时, 都会想到,

那么,有没有一种工具,把浏览器的记录,自动的转换成locust文件呢?

那么,又是如何转换的呢?

今天,就跟着小鱼一起,看看如何把浏览器记录 自动转换成 Locust文件

2、安装及调用

2.1 介绍

Transformer概括来说就是一个命令行工具 和Python库,用户将web浏览器的记录(HAR files) 转换成Locust负载测试方案(即 “locustfiles”)。

用它来重播HAR file(存储浏览器的浏览记录)在Locust的负载测试中。

2.2 安装

安装方式,同样是 pip 安装

transformer 安装

pip install har-transformer

注意

Tranformer 暂时并不支持新的Locust 版本(1.0及以上版本)

所以,如果要使用Tranformer,就需要确认 Locust的版本。

我们来指定安装 Locust 版本:

Locust 安装

pip install locustio==0.14.6

2.3 使用

2.3.1 保存HAR files

问:我们把浏览记录保存成HAR 格式,需要分几步?

答:需要分三步。

第一步

打开浏览器 开发者模式,即 按下 F12。

第二步

浏览数据,使其生成数据

第三步

选择需要保持的数据,点击鼠标右键→保存成 HAR 。

如下图

无标题.png

关于如何创建HAR file,在第3章节,会详细介绍。

2.3.2 命令行工具

我们把HAR-files 转换成locustfiles,

直接转换即可,

transformer my_har_files_directory/ >locustfile.py

my_har_files_directory 是刚刚保存的 HAR 文件

2.3.3 作为库被调用

我们把HAR-file 转换成locustfile,当成python库被调用。

老规矩,上代码。

代码

# -*- coding:utf-8 -*-
# @Time   : 2022-07-23
# @Author : carl_DJ

import transformer
#打开文件
with open ("locustfile.py","w") as f :
transformer.dump(f, ["my_har_files_directory/"])

3、 创建HAR-file

3.1 简介

HAR文件是JSON文件,用于存储从服务器的角度“重放” Web浏览会话所需的所有内容。

它们包含由Web浏览器发出的所有Web请求以及来自服务器的相应响应。

因此,我们经常将HAR文件称为场景:就像戏剧或电影的场景一样,它描述了应该发生的情况。

Transformer将这些HAR文件转换为一个程序,该程序 通过大规模重放记录的场景来对访问的网站进行负载测试。

3.2 录制场景

因为小鱼对chrome是很钟爱的,所以,就拿chrome来举例,

但是firefox 浏览器操作方法也一样,所以,在这里就不单独说明了。

在录制场景时, 我们需要做以下几步:

①准备方案

②启动浏览器,(需要确认只有想要的Cookie,而没有多余的Cookie)

③打开开发者工具,(通常 F12)

④选择 Network tab

⑤选择禁用缓存并保存日志

⑥通过单击清除?按钮清除现有日志。

⑦确保已启用录制:“录制”按钮应为红色?(单击以进行切换)。

⑧通过在地址栏中输入URL(例如 https://blog.csdn.net/wuyoudeyuer)来导航到目标站点。

⑨通过单击页面,填写表格,单击按钮等来执行方案。

注:

在每次单击/操作之后以及下一次单击/操作之前,

建议数据全部被加载完成,或者说数据被全部清理干净。

这样可以确保正确记录所有请求。

图片展示

无标题1.png

3.3 保存HAR

在完成方案后,就可以执行以下的操作:

①单击“录制”?按钮结束录制。

②右键单击“Network”面板底部窗格中,输入文件名。

③选择 HAR 并"另存为…"到指定的位置。

注:

查看保存的HAR文件内容的方法:

将HAR文件拖放到Chrome开发者工具网络面板中即可

3.4 特定场景

3.4.1 制定权重

默认情况下,Transformer认为所有方案的权重均为1,

我们如果需要修改权重,可以创建关联的权重文件为每个HAR文件指定不同的权重。

例如

要权衡abc.har场景,请abc.weight在同一目录中创建一个文件。

abc.weight应该包含您要关联的权重abc.har,例如2或76。

权重 必须为正,非空正数

展示一下方案文件组构成

$ ls
scenario1.har
scenario2.har
scenario2.weight
$ cat scenario2.weight

Transformer将在相应的locustfile中指定的权重:

情境

 重量

scenario1.har 1
scenario2.har3

这就意味着 Locust 运行时,scenario2.har 是 scenario1.har 的3倍。

3.4.2 分层方案

在某些情况下,可能无法一视同仁:

・有些仅适用于您的负载测试目标的一部分,

・一些更繁琐的运行方案。

为了更适应这种运行方案,我们可以设置成一个分层结构,

每个目录都可能与特定权重相关联:

scenarios/

|-------Germany/

|--------|----------scenario_1.har

|--------|----------scenario_2.har

|--------|----------scenario_2.weight

|------- Germany.weight

|------- witzerland/

|--------|----------scenario_1.har

|--------Switzerland.weight

目录的重量文件(Germany.weight,Switzerland.weight)类似的场景重文件,但适用于整个目录(相对同级别的其他目录)。

就像HAR文件一样,没有权重文件的目录的默认权重为1。

同样,方案可以任意嵌套

scenarios/

|-------Germany/

|--------|----------beauty/

|--------|----------|-----checkout.har

|--------|----------kids/

|--------|----------|-----frontpage.har

|--------|----------kids.weight

|--------|----------|-----scenario_1.har

|------- Germany.weight

|------- witzerland/

|--------|----------scenario_1.har

|--------Switzerland.weight

Transformer将在结果locustfile中生成嵌套的Locust TaskSet。

3.4.3 忽略特定URL

默认情况下,Transformer提供的HAR文件中找到的所有请求。

但是,可以通过在执行Transformer的目录中创建文件来将某些URL列入黑名单(即忽略)

例如

创建 testurl.urlignore

google
www.baidu.com
https://csdn

则,在执行时的时候,会忽略带有上面信息的url地址

例如

・https://www.google.com,

・https://www.baidu.com/,

・https://blog.csdn.net/wuyoudeyuer,

嗯,今天的分享,就到这里。

关于Locust的技能,可以查看奕然的其他文章,点击跳转

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   Android系统背景介绍  Android系统是一种基于Linux内核的自由及开源的操作系统,广泛应用于智能手机,平板,TV,车载等场景,由Google和开放手机联盟领导及开发。Android操作系统最初由安迪·鲁宾开发,主要支持手机。  ·2005年8月由Google收购注资。  · 2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。  · 第一部Android智能手机发布于2008年10月。Android逐渐扩展到...
            0 0 98
            分享
          •   当地时间7月21日,印度财政部向印度议会通报,包括小米、vivo、OPPO在内的多家中国主要智能手机制造商逃避关税,并在印度非法汇款了至少800亿卢比(约70.2亿元),而印度税务机关只追回了这些公司逃税总额的18%。  印度政府在给印度法院的书面答复中表示,小米公司在2019-2020年度逃税总额为65.3亿卢比,在2020-2021年度逃税总额为2.399亿卢比,在2022-2023年度的逃税总额为46.1亿卢比,即2019-2023年期间累计逃税总额为113.799亿卢比。  2017年至2021年间,OPPOMobilePvtLtd。的逃避关税价值达到了440.3亿卢比。  在总计...
            0 0 1102
            分享
          • “人人都在谈论亚马逊裁员,但高层、部门主管从始至终没有任何发声。重灾区、赔偿政策、裁员人数、下一个是谁……一切似乎以某种闭门方式秘密进行。没有被裁的员工每天要靠刷纽约时报、逛社交平台来搜集爆料。”在亚马逊美国总部担任技术经理的黄杰西告诉界面新闻,“不透明”是大多数基层员目前所知的“最明确”信息。《纽约时报》11月14日报道,亚马逊计划开始大规模裁员,总数约计1万人,主要集中于设备与服务、零售以及人力资源事业部。消息人士还透露裁员很可能不会一次性完成,而是采用滚动形式,一个团队接着一个团队分批进行。11月17日,亚马逊设备和服务部门的负责人戴夫·林普在亚马逊博客中发布的备忘录写道:“我们最近决定...
            0 0 784
            分享
          •   应届生,没有实际项目经验怎么破?  面试的过程并不为为了显示面试官技术有多牛,也不是为了体现他们公司有多么难进而是考察你的能力和招聘需求是否相匹配,进而评估你能否满足工作需求,甚至实现更多的岗位期待。  弄清楚了这个核心,那么就只需要把控好两方面的内容:  1、自己的技能水平可以满足招聘需求  2、表达能力OK  围绕上面的核心,咱们来具体的聊一下:  首先来说,目前的行业招聘现状是:  ·测试行业底层在不断洗牌  · 初级人员薪资一直维持不变(相当于降薪)  · 已经不再是公司疯狂招人的阶段  所以就导致了明显的两极分化,大厂倾向于直接招测试开发,测试团队进一步精简,...
            0 0 927
            分享
          •   无论是 iOS 还是 Android 开发,前端架构模式都是应用程序开发中最常用的模式之一。开发人员引入这些模式是为了克服早期模式的局限性。那么,它们有什么不同呢?又解决了什么问题呢?  1. MVC (Model-View-Controller)  MVC 是最古老的模式,可追溯到近 50 年前。  ·Model:封装了数据以及对数据的操作。  · View:定义了数据的展示,并负责接收用户输入。  · Controller:定义了对用户操作的响应。作为 Model 和 View 的连接,处理用户操作和数据上的改变。  MVC 模式的发明大大降低了...
            0 0 616
            分享
      • 51testing软件测试圈微信