我有我用于磨床测试的主/工人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方法:
添加了.m2 repository com amazonaws aws-java-sdk 1.11.221 to 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。
考虑到您正在使用jython,我不确定是否要在Java或Python语法中执行S3请求。
但是,我建议在下面的链接上与Python指南一起关注。
http://docs.ceph.com/docs/jewel/radosgw/s3/python/