我试图通过AWS运行一个BlazeMeter金牛座脚本和一个JMeter脚本。我希望有一种方法可以通过/tmp/bzt中的本地安装来运行bzt,而不是在系统上寻找一个bzt安装,因为它的lambda实际上并不存在。
这是我的lambda_handler.py
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并尝试使用特定目录中的本地安装,则会出现如下所示的跟踪。
这是执行结果中的跟踪:
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将更适合这一点,也是非常感谢。
https://stackoverflow.com/questions/73338387
复制相似问题