有了上述的理论基础后,进行jMeter项目的配置工作思路也就清楚了。
在jMeter里,我们按照SAP官网认证架构图的6个步骤来配置:
(1) 使用jMeter提供的正则表达式提取器,将认证流程第3个步骤,IdP返回的登录页面的5个隐藏字段的值提取出来,存储成jMeter变量:
下图显示了这些隐藏字段的值被成功提取出来并存储成jMeter变量:
(2) 把第一步提取出并存储在jMeter变量中的五个字段的值(下图红色)的值,再加上用户手动输入的用户名和密码(下图蓝色), 作为请求的头部字段,一齐提交给SAP ID service:
登录成功后,收到了服务器端返回的Cookie值:
(3) 发送新的请求给服务器,获取CSRF token. 这个请求的响应里包含了两个下图高亮的Cookie,需要同样存储成jMeter变量,以供最后一个请求使用。
(4) 最后一个步骤,将前一步获取到的CSRF token附加到HTTP请求字段中,同时带上前一步服务器返回的两个Cookie字段:
至此这个jMeter项目的配置工作就完成了,其优于Java编程和Postman之处在于我们不需要编写一行代码,我们对API进行并发测试这个需求的相关功能点全部能够通过jMeter里的配置完成。
最后简单测试一下并发请求的响应时间:
我在使用jMeter调用contact API创建工作时用到了简单的随机数生成器,在contact的姓后面加上了简单的随机数,这是最后通过jMeter生成的contact在Marketing Cloud里的显示:
最后一步就是把SAP Marketing Cloud Launchpad里的contact tile的计数器刷新间隔设置成10秒刷新一次:
最后系统显示,在上海 SAP 云大会这个演示场景的展台上,一共有 276 个嘉宾完成了人脸识别后的Marketing Cloud contact注册流程。
总结
本文首先介绍了 Client,Service Provider 和 Identity Provider 在 User Authentication 场景中的互相分工和交互原理,接着以 SAP Marketing Cloud Contact 创建这个 Restful API 为例,详细分享了使用 jMeter 对其产生大量并发请求从而实现并发负载测试的步骤。