我有用于 Grinder 测试的 master/worker EC2 实例。我需要尝试直接从 S3 存储桶获取文件的负载测试,但我不确定 Grinder 测试脚本在 Jython 中的外观。
有什么想法或提示吗?我稍微研究了一下,发现 Python 有用于与 AWS 一起工作的 boto 包——这在 Jython 中也能工作吗?
(编辑 - 添加代码和导入错误以进行澄清。)
Python 方法:
是否“pip install boto3”
测试脚本:
from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
import boto3
# boto3 for Python
test1 = Test(1, "S3 request")
resource = boto3.resource('s3')
def accessS3():
obj = resource.Object(<bucket>,<key>)
test1.record(accessS3)
class TestRunner:
def __call__(self):
accessS3()
错误是:
net.grinder.scriptengine.jython.JythonScriptExecutionException: : 没有名为 boto3 的模块
Java 方法:
将 aws-java-sdk-1.11.221 jar 从 .m2\repository\com\amazonaws\aws-java-sdk\1.11.221\ 添加到 CLASSPATH
from net.grinder.script.Grinder import grinder
from net.grinder.script import Test
import com.amazonaws.services.s3 as s3
# aws s3 for Java
test1 = Test(1, "S3 request")
s3Client = s3.AmazonS3ClientBuilder.defaultClient()
test1.record(s3Client)
class TestRunner:
def __call__(self):
result = s3Client.getObject(s3.model.getObjectRequest(<bucket>,<key>))
错误是:
net.grinder.scriptengine.jython.JythonScriptExecutionException: : 没有名为 amazonaws 的模块
我也在 Windows 计算机上运行东西,但我使用的是 Git Bash。