使用 jMeter 对 SAP Spartacus 进行并发性能
Spartacus是一个基于 Angular 的店面,是为SAP Hybris Commerce/ SAP Commerce Cloud设计的。它使用REST API与Hybris Commerce交互。在初始阶段,它就提供了Hybris店面的大部分核心功能。Spartacus 是可扩展和可定制的。
Spartacus有一个解耦的架构,这意味着店面本身作为一个独立的实体,在它的OOTB特性之上可以有自定义特性。它通过REST API与SAP Commerce Cloud或任何其他SAP、非SAP工具进行交互,这使它成为一个独立的框架。它允许前端开发人员不再理解后端技术,他们所需要的唯一交互是通过web服务层,这使得开发、测试和部署单个平台更加容易。
我们可以真正使用快捷的UI,即服务器端渲染和延迟加载组件等。因为它不再是平台的一部分,所以可以单独部署,允许它单独扩展。
在Angular中,每个功能都作为一个单独的模块存在。如果在SmartEdit或CMS Cockpit中创建了一个新页面,你需要在Angular代码库中创建一个单独的站点页面。
2021 年国庆节期间的成果。当时用的版本是 5.4.1:
启动之后直接报错:
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
换成 5.5 版本,打开文件报错:
Problem loading XML from:'C:\Code\jmeter-projects\jerry-static\ssr\JerryStaticPagesTestPlan.jmx'.
Cause:
CannotResolveClassException: com.blazemeter.jmeter.RandomCSVDataSetConfig
Detail:com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.converters.ConversionException
cause-message :
first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:66)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jmeter.save.ScriptWrapper
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashTree/hashTree/hashTree[5]/hashTree[3]/com.blazemeter.jmeter.RandomCSVDataSetConfig
line number : 258
version : 5.5
解决方案:把文件 jmeter-plugins-random-csv-data-set-0.6.jar
放到 jMeter 安装目录的 lib/ext 文件夹下即可。
之后遇到新的错误:
Cannot invoke "org.apache.jmeter.gui.JMeterGUIComponent.clearGui()" because "guicomp" is null
把这些 jar 包放入 ext 文件夹,重启 jMeter,问题消失:
执行测试的命令行:
-
jmeter -n -t ./jerry-static/ssr/JerryStaticPagesTestPlan.jmx -p ./jerry-static/ssr/user.properties -l jerryresult.csv
-
jmeter -g results/static-results-2022-06-30-2143.csv -o reports/a1 -q ./jerry-static/ssr/user.properties