手机老是下载一些做任务的网站,建设企业网站e路护航官网下载,热搜在哪里可以看,2022最近热点事件及评述《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处#xff0c;如下所示。 Grafana性能图表实时展现#xff0c;测试过程中需实时截图形成测试报告#xff0c;不够人性化。解决方案#xff1a;自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控…
《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处如下所示。 Grafana性能图表实时展现测试过程中需实时截图形成测试报告不够人性化。解决方案自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控人力成本较高。解决方案自动生成测试报告并邮件通知。 多脚本构建的话无法区分Grafana展现的性能图表对应哪个脚本。解决方案传参区分脚本并生成每个接口对应的测试报告。 如果考虑持续监控可加入预警功能。解决方案依赖Grafana的预警功能。 未能自动生成测试报告。解决方案自动生成测试报告并邮件通知。 需登录jenkins停止脚本构建操作不够便利。解决方案前端增加停止构建操作。 每次只能提交一个脚本进行构建。解决方案支持批量构建。 结合笔者所在项目组现状优先解决了以下几个问题。
本期改进
1、多脚本构建的话无法区分Grafana展现的性能图表对应哪个脚本。
最终解决方案将脚本名称写入influxdb库然后再通过Grafana配置读取。 创建influxdb数据库interfaceName并插入数据脚本名称
!-- 依赖关系 --dependency groupIdorg.influxdb/groupId artifactIdinfluxdb-java/artifactId version2.5/version/dependency
//创建数据库并写入对应脚本的名称 public static void influxdb(String interfaceName) throws Exception { MapString,String configMap new HashMapString, String(); configMap getProperties(config\\config.properties); InfluxDBUtil svr new InfluxDBUtil(configMap.get(Influxdb)) //对应测试机地址 .setDatabase(interfaceName, autogen) //数据库名 .setAuthentication(admin, admin) //grafana datasource配置的用户名和密码 .setRetentionPolicy(30m, 1) .build();for (int i 0; i 5; i) { MapString, String tags new HashMapString ,String(); tags.put(system, configMap.get(InfluxdbSystem)); //对应的应用MapString, Object fields new HashMapString, Object(); fields.put(interfaceName, interfaceName); //面板展现的脚本名称svr.insert(interface, tags, fields); System.out.println(i); } } 配置Grafana的datasource。 DataSource配置 配置Grafana面板配置。 面板配置 执行压测小工具提交脚本展现性能数据注意图二展现了脚本名称。 压测小工具 性能图表
2、需登录jenkins停止脚本构建操作不够便利。
最终解决方案无需解决测试人员需登录jenkins查看构建日志分析构建结果。 构建日志 3、每次只能提交一个脚本进行构建。
最终解决方案多脚本提交时jenkins按脚本提交的先后顺序排队构建。 同一套压测环境为了保证单个接口压测的准确性笔者并不建议并行构建多个接口可以通过压测小工具提交脚本串行构建。 jenkins构建 触发Jenkins构建扩展
除了《基于Jmeter的性能测试框架搭建》提及的webhook,Poll SCM触发jenkins构建也可以通过curl或jenkins-cli触发构建。
curl命令构建
curl -i -u jenkinsUserName:jenkinsPassword -X POST -H $CRUMB http://jenkinsurl/jenkins/job/jobName/build?delay0sec
jenkins-cli构建 下载jenkins-cli.jar 通过jenkinsUrl/cli下载对应版本的jenkins-cli.jar。 jenkins-cli.jar下载 通过build命令触发构建 //触发jenkins构建 configMap getProperties(config\\config.properties);String jenkinsCliUrl lib\\lib\\jenkins-cli.jar;String jenkinsUrl configMap.get(JenkinsUrl);String jobName configMap.get(JenkinsJobName);String userName configMap.get(JenkinsUserName);String password configMap.get(JenkinsPassword);String commandStr java -jar jenkinsCliUrl -s jenkinsUrl build jobName --username userName --password password;Runtime.getRuntime().exec(commandStr); //触发jenkins构建
需要注意的是通过jenkins-cli方式触发构建需设置jenkins的全局安全配置为“任何用户可以做任何事没有任何限制”或勾选“Allow anonymous read access”否者会报错。 全局安全配置 更多的命令可通过help或在jenkinsUrl/cli查看 java -jar jenkins-cli.jar -s http://jenkinsUrl/jenkins/ help 可用命令