如何使用WebLOAD API自动执行DevOps的负载测试

David Buch于2017年9月06日发布 自动化负载测试并将其与其他流程集成正变得越来越普遍。 WebLOAD使您可以使用Jenkins和Bamboo之类的工具自动化负载测试并建立持续的集成过程,但是在某些情况下,您可能需要额外的灵活性来适应其他环境或需求。

WebLOAD使用开放的API解决了这一问题,该API可让您执行会话、准备报告、访问数据等。

WebLOAD Open API

该API提供了动态说明,可通过WebLOAD仪表板使用以下链接进行访问: 当然,用您的服务器名称替换“ {server_address}”。 单击任何链接以查看用于运行会话、准备报告、获取结果等的相关API。 可以使用UI轻松创建每个API,如下所示:

用例示例

假设您运行负载测试会话,访问数据并仅使用自动化来创建报告。 该会话在UNIX脚本的上下文中运行,但是可以根据需要将其转换为其他编程语言。 从模板“ MY.TPL”开始新的会话并将结果存储在“ OUT.LS”中
curl -X POST --header 'Content-Type: application/x-www-form-urlencoded' --header 'Accept: application/json' -d 'template=my.tpl&lsName=out.ls&responseTimeout=60' 
'http://localhost:8080/api/session'
样本响应:
{

  "code": "STARTED",

  "response": "New Session started.session/23",

  "sessionid": "23"

}
通过从上面提取会话ID来检查会话的状态,例如,使用:
sid = `sed -n 's/.*"sessionid": "\([0-9]*\).*/\1/p'`
获取会话详细信息:
curl 'http://localhost:8080/api/session/${sid}'
这将成为您的脚本:
curl 'http://localhost:8080/api/session/23'
样本响应:
{

  "sessionId": 23,

  "reportResolution": 20,

  "startTime": 1494856676000,

  "endTime": 1494856776000,

  "path": "c:\\temp\\out.ls.ls",

  "returnCode": "Test passed",

  "failedReason": "Test passed",

  "text": "out.ls"

}
获取会话数据-例如,获取LOAD-SIZE。 “目标”将是“总。性能测量。负载大小”:
curl -X POST --header 'Content-Type: application/x-www-form-urlencoded' --header 'Accept: application/json' -d 'target=Total.Performance%20Measurements.Load%20Size&
sessionid=23' 'http://localhost:8080/api/render'
样本响应:
[

  {

    "target": "Load Size",

    "datapoints": [

      [

        5,   //load size

        1494856696000 //timestamp

      ],

      [

        10,

        1494856716000

      ],

    ….
使用会话概要文件生成分析报告:
Curl 'http://localhost:8080/api/analytics?sessionid=23&portfolio=Summary%20Portfolio&format=PDF&name=Report'