Jmeter生成HTML文件上传GitHub Actions失败,寻求解决方案
GitHub Actions上传JMeter生成的HTML文件失败求助
我尝试通过GitHub Actions上传JMeter执行后生成的HTML报告文件,但执行脚本时出现错误,无法成功上传HTML文件。本地执行时能正常生成index.html文件,希望能在GitHub Actions执行完成后看到两个结果条目:jmeter-results和jmeter-results-HTML。
我的YAML配置文件
name: CI on: push: branches: [ "main" ] pull_request: branches: [ "main" ] workflow_dispatch: inputs: choice: type: choice description: Environment options: - test - dev - uat jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: setup-jmeter run: | sudo apt-get update sudo apt install curl -y sudo apt install -y default-jdk sudo curl -O https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.3.tgz sudo tar -xvf apache-jmeter-5.3.tgz cd $GITHUB_WORKSPACE/apache-jmeter-5.3/lib && sudo curl -O https://repo1.maven.org/maven2/kg/apc/cmdrunner/2.2.1/cmdrunner-2.2.1.jar cd $GITHUB_WORKSPACE/apache-jmeter-5.3/lib/ext && sudo curl -O https://repo1.maven.org/maven2/kg/apc/jmeter-plugins-manager/1.6/jmeter-plugins-manager-1.6.jar cd $GITHUB_WORKSPACE/apache-jmeter-5.3/lib && sudo java -jar cmdrunner-2.2.1.jar --tool org.jmeterplugins.repository.PluginManagerCMD install-all-except jpgc-hadoop,jpgc-oauth,ulp-jmeter-autocorrelator-plugin,ulp-jmeter-videostreaming-plugin,ulp-jmeter-gwt-plugin,tilln-iso8583 - name: run-jmeter-test run: | echo "choice is ${{ github.event.inputs.choice }}" / ${{ inputs.choice }} $GITHUB_WORKSPACE/apache-jmeter-5.3/bin/./jmeter.sh -n -t testGIT.jmx -Jchoice="${{ github.event.inputs.choice }}" -l result.jtl -e -o $GITHUB_WORKSPACE/html/test - name: Upload Results uses: actions/upload-artifact@v2 with: name: jmeter-results path: result.jtl - name: Upload HTML uses: actions/upload-artifact@v2 with: name: jmeter-results-HTML path: index.html
截图说明
- GitHub Actions执行结果截图:

- 本地生成的index.html文件截图:

解决方法
问题根源是你指定的HTML文件路径错误。JMeter命令中通过-o $GITHUB_WORKSPACE/html/test将报告输出到了html/test目录下,所以index.html实际位于该目录内,而非仓库根目录。
方案1:仅上传index.html文件
修改Upload HTML步骤的path参数,指向正确的文件位置:
- name: Upload HTML uses: actions/upload-artifact@v2 with: name: jmeter-results-HTML path: ${{ github.workspace }}/html/test/index.html
方案2:上传整个报告目录(推荐)
HTML报告依赖CSS、JS等静态资源才能正常展示,建议直接上传整个目录:
- name: Upload HTML uses: actions/upload-artifact@v2 with: name: jmeter-results-HTML path: ${{ github.workspace }}/html/test/
修改后重新触发GitHub Actions,就能成功上传HTML报告文件,得到预期的两个结果条目。
内容的提问来源于stack exchange,提问作者Ralph
相关产品推荐
相关产品推荐

