如何使用Jenkins绘图插件和xml文件绘制多个系列

时间:2013-12-06 10:49:27

标签: xml plugins xpath jenkins plot

我有以下格式的xml文件:

<summary>
    <start>2013-12-03 12:24:35,785</start>
    <end>2013-12-03 12:34:34,107</end>
    <duration unit="minutes">10</duration>
    <transactions>2716</transactions>
    <throughput unit="Transactions per second">4.53</throughput>
    <APIs>
        <API name=" USER_LOGIN">
            <mean>687.4</mean>
            <median>603</median>
            <stdDev>308.71</stdDev>
            <minimum>553</minimum>
            <maximum>2009</maximum>
            <count>57/2716 (2.1%)</count>
            <successCount>57</successCount>
            <failureCount>0</failureCount>
        </API>
        <API name=" APP_SETTINGS_GET">
            <mean>496.23</mean>
            <median>474</median>
            <stdDev>53.94</stdDev>
            <minimum>446</minimum>
            <maximum>704</maximum>
            <count>57/2716 (2.1%)</count>
            <successCount>57</successCount>
            <failureCount>0</failureCount>
        </API>
    </APIs>
</summary>

使用上面的xml,我需要绘制所有&#34; mean&#34;内部存在的节点&#34; API&#34; Jenkins plot插件中的一个图中的节点。谁能帮助我构建xpath以获得所有&#34;意思是&#34;节点?

谢谢, Mamatha

1 个答案:

答案 0 :(得分:0)

你可以尝试/summary/APIs/API/mean,但我很确定你会得到两个名为“mean”的系列,这是非常无意义的。

或者,如果你想从上面的例子中得到两个系列,一个名为“USER_LOGIN”而另一个名为“APP_SETTINGS_GET”,你可以将Xml变成一个CSV文件并让插件使用它。如果你在Windows上,这个Powershell脚本会这样做(假设你的Xml在input.xml中):

$csvObject = New-Object PSObject
Select-Xml -Path input.xml -Xpath "/summary/APIs/API" | 
    select -ExpandProperty node | 
    For-Each { Add-Member -InputObject $csvObject -MemberType NoteProperty -Name $_.name -Value $_.mean }
Export-Csv -Path means.csv -InputObject $csvObject -NoTypeInformation

这只会生成一个如下所示的CSV文件:

"USER_LOGIN","APP_SETTINGS_GET"
"687.4","496.23"

然后将其导入为CSV系列:

Importing the CSV file in the Jenkins plot plugin