0

我有用于 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。

4

1 回答 1

0

鉴于您使用的是 Jython,我不确定您是否要以 java 或 python 语法执行 S3 请求。

但是,我建议跟随下面链接中的 python 指南。

http://docs.ceph.com/docs/jewel/radosgw/s3/python/

于 2017-11-20T21:02:48.347 回答