首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS上运行金牛座BlazeMeter

在AWS上运行金牛座BlazeMeter
EN

Stack Overflow用户
提问于 2022-08-12 18:27:27
回答 1查看 56关注 0票数 1

我试图通过AWS运行一个BlazeMeter金牛座脚本和一个JMeter脚本。我希望有一种方法可以通过/tmp/bzt中的本地安装来运行bzt,而不是在系统上寻找一个bzt安装,因为它的lambda实际上并不存在。

这是我的lambda_handler.py

代码语言:javascript
复制
import subprocess
import json


def run_taurus_test(event, context):
    
    subprocess.call(['mkdir', '/tmp/bzt/'])
    subprocess.call(['pip', 'install', '--target', '/tmp/bzt/', 'bzt'])
    
    # subprocess.call('ls /tmp/bzt/bin'.split())

    subprocess.call(['/tmp/bzt/bin/bzt', 'tests/taurus_test.yaml'])

    return {
        'statusCode': 200,
        'body': json.dumps('Executing Taurus Test hopefully!')
    }

在我的计算机上正常通过taurus_test.yaml安装bzt测试时,pip正常运行,所以我知道问题不在测试脚本中。如果我从系统中卸载bzt并尝试使用特定目录中的本地安装,则会出现如下所示的跟踪。

这是执行结果中的跟踪:

代码语言:javascript
复制
Traceback (most recent call last):
File "/tmp/bzt/bin/bzt", line 5, in <module>
from bzt.cli import main
ModuleNotFoundError: No module named 'bzt'

/tmp/bzt/bin/bzt中,它在技术上是失败的,它是一个失败的可执行文件,我认为这是因为它没有使用本地/目标安装。

因此,我希望有一种方法可以告诉bzt继续使用/tmp/bzt中的目标安装,而不是在那里调用可执行文件,然后尝试将其传递给不存在于其他地方的安装。反馈,如果AWS,法尔盖特或EC2将更适合这一点,也是非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2022-08-14 09:49:22

根据bzt包的大小,解决方案如下:

  • 使用Lambda最近的功能,这样,您在本地运行的就是在Lambda上获得的。
  • 使用Lambda层(类似于Docker),此层作为python目录中的python模块,如所述那里
  • 当您打包Lambda时,不要上传一个简单的Python文件,而是创建一个同时包含/path/to/zip_root/lambda_handler.pypip install --target /path/to/zip_root的ZIP文件。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73338387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档