You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AI Search性能测试工具报错:results.jtl文件缺失求助

Azure AI Search性能测试流水线问题:JMeter结果文件找不到

问题描述

我是Terraform新手,正在开展Azure AI Search性能测试工作,使用GitHub仓库azure-search-performance-testing中的load-test.yml创建流水线时遇到问题:在将JMeter测试结果转换为JUnit格式的步骤中,系统提示找不到文件/home/vsts/work/1/s/results/results.jtl。已配置AzureCLI任务从存储账户下载测试产物,但转换脚本仍报错文件缺失,恳请协助排查解决。

报错信息

> Generating script.
========================== Starting Command Output ===========================
/usr/bin/bash --noprofile --norc /home/vsts/work/_temp/bb347353-e24e-4854-b090-f7bda3b155ae.sh
Converting...
Traceback (most recent call last):
File "/home/vsts/work/1/s/terraform/../scripts/jtl_junit_converter.py", line 179, in
main()
File "/home/vsts/work/1/s/terraform/../scripts/jtl_junit_converter.py", line 173, in main
test_suites = create_test_suites(sys.argv[1])
File "/home/vsts/work/1/s/terraform/../scripts/jtl_junit_converter.py", line 164, in create_test_suites
junit_results = create_junit_results(jtl_results_filename)
File "/home/vsts/work/1/s/terraform/../scripts/jtl_junit_converter.py", line 106, in create_junit_results
with open(jtl_results_filename) as jmeter_file:
FileNotFoundError: [Errno 2] No such file or directory: '/home/vsts/work/1/s/results/results.jtl'

[error]Bash exited with code '1'.
Finishing: RESULTS: Convert JMeter Results to JUnit Format

相关代码

AzureCLI下载任务

- task: AzureCLI@2
  displayName: 'RESULTS: Download Jmeter results'
  inputs:
    azureSubscription: $(AZURE_SERVICE_CONNECTION_NAME)
    scriptType: 'bash'
    workingDirectory: ./terraform
    scriptLocation: 'inlineScript'
    inlineScript: |
      RG=$(terraform output resource_group_name)
      SHARENAME=$(terraform output storage_file_share_name)
      STGKEY=$(terraform output storage_account_key)
      ACCOUNTNAME=$(terraform output storage_account_name)
      mkdir $(System.DefaultWorkingDirectory)/results
      az storage file download-batch --account-key $STGKEY --account-name $ACCOUNTNAME --destination $(JMETER_DIRECTORY_OUTPUT) --no-progress --source $SHARENAME

结果转换与发布任务

- script: |
    JMETER_RESULTS=$(JMETER_DIRECTORY_OUTPUT)/$(terraform output jmeter_results_file)
    JUNIT_RESULTS=$(JMETER_DIRECTORY_OUTPUT)/output.xml
    python3 ../scripts/jtl_junit_converter.py $JMETER_RESULTS $JUNIT_RESULTS
  workingDirectory: ./terraform
  displayName: 'RESULTS: Convert JMeter Results to JUnit Format'

- task: PublishTestResults@2
  inputs:
    testResultsFormat: 'JUnit'
    testResultsFiles: '$(JMETER_DIRECTORY_OUTPUT)/output.xml'
    failTaskOnFailedTests: false
  displayName: 'RESULTS: Publish Load Testing Results'

排查建议

  • 校验JMETER_DIRECTORY_OUTPUT变量值:确认该变量是否指向$(System.DefaultWorkingDirectory)/results——下载任务创建了这个目录,但如果变量路径不匹配,文件会被下载到错误位置。可以在AzureCLI任务中添加echo "JMETER_DIRECTORY_OUTPUT value: $(JMETER_DIRECTORY_OUTPUT)"查看实际值。
  • 检查下载文件的实际位置:在AzureCLI任务的inlineScript末尾添加ls -la $(JMETER_DIRECTORY_OUTPUT),确认results.jtl是否存在,或是被下载到了子目录中(az storage file download-batch会保留存储共享中的目录结构)。
  • 验证Terraform输出的jmeter_results_file:在转换任务中添加echo "Jmeter results file: $(terraform output jmeter_results_file)",确认输出的文件名是不是results.jtl,有没有拼写错误或多余路径前缀。
  • 确认目录创建结果:在AzureCLI任务中添加ls -la $(System.DefaultWorkingDirectory),检查results目录是否成功创建。
  • 改用绝对路径避免混淆:转换任务中,将JMETER_RESULTS改为绝对路径,比如JMETER_RESULTS=$(System.DefaultWorkingDirectory)/results/$(terraform output jmeter_results_file),避免相对路径带来的问题。

内容的提问来源于stack exchange,提问作者aalimsha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:49:59