如何用Jmeter测试微服务接口

本文介绍如何使用Jmeter测试云上Spring Cloud或Dubbo服务接口功能。

测试流程

测试流程..png

权限说明

为防止对云上环境内的接口误调用,在运行Jmeter前您需具备以下权限。

  • 目标应用的读权限:能够选择该应用发起接口访问。

  • 接口访问权限:能够对接口进行成功调用。

  1. 登录EDAS控制台
  2. 在左侧导航栏,选择系统管理 > 权限助手

  3. 权限助手页面,单击创建权限策略

  4. 创建权限策略配置向导页面的创建自定义权限策略页签,设置权限策略的策略名称备注

  5. 创建自定义权限策略页签,单击新增权限语句,在加授权语句面板,设置对应应用的查看权限和接口访问权限,然后单击确认

    1. 权限效力下方,选择允许

    2. 操作与资源授权区域的左侧权限列表,选择应用 > 查看应用应用 > 接口访问,在右侧资源列表中根据您的需求设置对应的地域微服务空间应用

      资源授权
  6. 创建权限策略配置向导页面,单击下一步

  7. 策略预览页签预览权限,根据页面提示在RAM控制台创建自定义权限策略,并授权给对应的RAM用户,然后单击完成。具体操作,请参见步骤三:创建RAM用户并添加授权

    控制台面板提示新增策略授权成功,单击返回列表查看,返回权限助手页面,查看新建的权限策略模板。

操作步骤

步骤一:安装插件

下载并解压插件包jmeter-plugins-edas.jar.zip,将解压后的jmeter-plugins-edas.jar插件文件放在Jmeter的lib/ext目录下,然后启动Jmeter。image.jpeg

步骤二:配置账号及环境

  1. 在测试计划中选择Add > Config Element > EDAS Config,打开配置页面。

  2. EDAS Config页面设置账号AccessKeyIdAccessKeySecret ,并配置目标测试环境。

    image..png

步骤三:测试接口

测试Spring Cloud接口

  1. 在测试计划中选择Add > Sampler > EDAS Spring Cloud Sample

    image.jpeg
  2. EDAS Spring Cloud Sample的界面配置如下图所示。

    image..png

    配置说明如下:

    配置项模块

    配置项

    说明

    样例

    服务

    服务

    目标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

  3. 配置完成后,单击运行..png图标开始发起测试。您可单击右上角的查看日志..png图标,查看引擎初始化过程和调用过程的详细日志。

    说明

    首次发起测试时,需初始化云端测试引擎,大概持续10~20秒左右。初始化引擎后,在1个小时内无需重新初始化。

    image.jpeg

测试Dubbo接口

  1. 在测试计划中选择Add > Sampler > EDAS Dubbo Sample

    image.jpeg
  2. EDAS Dubbo Sample界面配置如下图所示。

    image..png

    配置说明如下:

    配置项模块

    配置项

    说明

    样例

    服务

    接口

    目标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中包含idname属性。

    AbstractUser

    {"id": 100, "name": "Sam", "class": "com.test.User"}

    该样例中接口参数定义为抽象类AbstractUser。在实际参数中,需通过class属性指明当前参数的实际类型,即"class": "com.test.User"。

  3. 配置完成后,单击运行..png图标开始发起测试。您可单击右上角的日志..png图标,查看引擎初始化过程和调用过程的详细日志。

    说明

    首次发起测试时,需初始化云端测试引擎,大概持续10~20秒左右。初始化引擎后,在1个小时内无需重新初始化。

    2023-04-28-10..jpeg

(可选)查看接口响应

  1. 在测试计划中选择Add > Listener > View Results Tree2023-04-28-11..jpeg

  2. 添加完成后,重新单击运行..png图标运行配置,查看测试接口的响应。2023-04-28-12..jpeg

问题反馈

如您在使用上述功能过程中有任何问题,请加入钉群(钉群号:34556175)联系产品技术专家咨询处理。