本文介绍如何使用Jmeter测试云上Spring Cloud或Dubbo服务接口功能。
测试流程
权限说明
为防止对云上环境内的接口误调用,在运行Jmeter前您需具备以下权限。
目标应用的读权限:能够选择该应用发起接口访问。
接口访问权限:能够对接口进行成功调用。
- 登录EDAS控制台。
在左侧导航栏,选择系统管理 > 权限助手。
在权限助手页面,单击创建权限策略。
在创建权限策略配置向导页面的创建自定义权限策略页签,设置权限策略的策略名称和备注。
在创建自定义权限策略页签,单击新增权限语句,在加授权语句面板,设置对应应用的查看权限和接口访问权限,然后单击确认。
在权限效力下方,选择允许。
在操作与资源授权区域的左侧权限列表,选择应用 > 查看应用和应用 > 接口访问,在右侧资源列表中根据您的需求设置对应的地域、微服务空间和应用。
在创建权限策略配置向导页面,单击下一步。
在策略预览页签预览权限,根据页面提示在RAM控制台创建自定义权限策略,并授权给对应的RAM用户,然后单击完成。具体操作,请参见步骤三:创建RAM用户并添加授权。
控制台面板提示新增策略授权成功,单击返回列表查看,返回权限助手页面,查看新建的权限策略模板。
操作步骤
步骤一:安装插件
下载并解压插件包jmeter-plugins-edas.jar.zip,将解压后的jmeter-plugins-edas.jar插件文件放在Jmeter的lib/ext
目录下,然后启动Jmeter。
步骤二:配置账号及环境
在测试计划中选择Add > Config Element > EDAS Config,打开配置页面。
在EDAS Config页面设置账号AccessKeyId和AccessKeySecret ,并配置目标测试环境。
步骤三:测试接口
测试Spring Cloud接口
在测试计划中选择Add > Sampler > EDAS Spring Cloud Sample。
EDAS Spring Cloud Sample的界面配置如下图所示。
配置说明如下:
配置项模块
配置项
说明
样例
服务
服务
目标Spring Cloud服务。
service-provider
路径
目标SpringCloud服务的接口路径。
/echo/{string}
指定目标调用(可选)
应用
默认情况下,Jmeter插件会对该微服务空间下的目标Spring Cloud服务发起接口访问。如果该Spring Cloud服务存在多应用,您可指定应用进行调用。
无
实例
默认情况下,Jmeter插件会对该微服务空间下的目标Spring Cloud服务发起接口访问。如果该Spring Cloud服务存在多实例,您可指定实例进行调用。
说明K8s应用在每次部署后实例IP会发生变化,因此在回归测试等场景中尽量避免指定目标实例。
无
测试通道
使用EDAS测试引擎调用
默认情况下,通过EDAS测试引擎发起测试请求。EDAS测试引擎会限制请求发送频率,建议每秒请求不要超过5个。
默认使用
使用EDAS云原生工具箱调用
通过EDAS云原生工具箱发起测试请求,该方式不限制发送频率。
说明若您需配置该方式,请加入钉群(钉群号:34556175)联系产品技术专家咨询处理。
无
参数
Params
设置请求的Query参数。
设置如下Query参数:
key:name
value:Jack
Body
设置POST和PUT请求的Body参数。当前支持以下几种Body参数类型:
none(无Body参数)
x-www-form-urlencoded
json
xml
text/plain
设置Body参数类型:
x-www-form-urlencoded
设置key/value:
key:age
value:20
Headers
设置请求的Header参数。
设置如下Header:
key:User-Agent
value:Mozilla/5.0
Cookies
设置请求的Cookie参数。
设置如下Cookie:
key:SessionId
value:123
配置完成后,单击图标开始发起测试。您可单击右上角的图标,查看引擎初始化过程和调用过程的详细日志。
说明首次发起测试时,需初始化云端测试引擎,大概持续10~20秒左右。初始化引擎后,在1个小时内无需重新初始化。
测试Dubbo接口
在测试计划中选择Add > Sampler > EDAS Dubbo Sample。
EDAS Dubbo Sample界面配置如下图所示。
配置说明如下:
配置项模块
配置项
说明
样例
服务
接口
目标Dubbo接口。
org.apache.dubbo.springboot.demo.DemoService(版本:1.0.0,分组:dev)
方法
目标Dubbo方法。
sayHello
指定目标调用(可选)
应用
默认情况下,Jmeter插件会对该微服务空间下的目标Dubbo服务发起接口访问。如果该Dubbo服务存在多应用,您可指定应用进行调用。
无
实例
默认情况下,Jmeter插件会对该微服务空间下的目标Dubbo服务发起接口访问。如果该Dubbo服务存在多实例,您可指定实例进行调用。
说明K8s应用在每次部署后实例IP会发生变化,因此在回归测试等场景中尽量避免指定目标实例。
无
测试通道
使用EDAS测试引擎调用
默认情况下,通过EDAS测试引擎发起测试请求。EDAS测试引擎会限制请求发送频率,建议每秒请求不要超过5个。
默认使用
使用EDAS云原生工具箱调用
通过EDAS云原生工具箱发起测试请求。该方式不限制发送频率。
说明若您需配置该方式,请加入钉群(钉群号:34556175)联系产品技术专家咨询处理。
无
参数
接口参数
设置Dubbo方法的参数。
paramType:参数类型。
paramValue:参数值。
null:设置参数值为NULL。
参数类型(paramType):
java.lang.String
参数值(paramValue):
helloworld
Attachment
设置Dubbo方法的调用隐式参数。
key:隐式参数键。
value:隐式参数值。
更多信息,请参见调用链路传递隐式参数。
key:color
value:blue
以下是Dubbo接口参数的更多样例。
paramType
paramValue
备注
int
java.lang.String
100
Jack
接口使用两个参数,第一个参数为int型,第二个参数为字符串。
java.util.Map
{"color": "blue"}
Map类型参数使用JSON Object形式,即使用大括号表示:{"color": "blue"}。
java.util.List
["Apple", "Banana", "Orange"]
该样例中接口参数为List类型,且元素为字符串。List类型参数使用JSON数组表示,即 ["Apple", "Banana", "Orange"]。
com.test.User
{"id": 100, "name": "Sam"}
该样例中接口参数为自定义的User类型,User中包含
id
和name
属性。AbstractUser
{"id": 100, "name": "Sam", "class": "com.test.User"}
该样例中接口参数定义为抽象类AbstractUser。在实际参数中,需通过class属性指明当前参数的实际类型,即"class": "com.test.User"。
配置完成后,单击图标开始发起测试。您可单击右上角的图标,查看引擎初始化过程和调用过程的详细日志。
说明首次发起测试时,需初始化云端测试引擎,大概持续10~20秒左右。初始化引擎后,在1个小时内无需重新初始化。
(可选)查看接口响应
在测试计划中选择Add > Listener > View Results Tree。
添加完成后,重新单击图标运行配置,查看测试接口的响应。
问题反馈
如您在使用上述功能过程中有任何问题,请加入钉群(钉群号:34556175)联系产品技术专家咨询处理。