0
내가 가진 XMLLogstash 코덱 여러 패턴
<test-suite type="TestFixture" name="RegionalityFeature" description="Regionality" executed="True" result="Failure" success="False" time="64.162" asserts="3">
<properties>
<property name="Description" value="Regionality" />
</properties>
<failure>
<message><![CDATA[One or more child tests had errors]]></message>
<stack-trace />
</failure>
<results>
<test-suite type="ParameterizedTest" name="_10CorrectRegionSwitchoverWithAuthorization" description="#10 Correct region switchover with authorization" executed="True" result="Failure" success="False" time="39.907" asserts="2">
<categories>
<category name="*Page" />
<category name="LoginPage" />
<category name="ErrorPage" />
</categories>
<properties>
<property name="Description" value="#10 Correct region switchover with authorization" />
</properties>
<failure>
<message><![CDATA[One or more child tests had errors]]></message>
<stack-trace />
</failure>
<results>
<test-case name="QA.*.Tests.Features.Regionality.RegionalityFeature._10CorrectRegionSwitchoverWithAuthorization("*","*","moskva","/login/?returnUrl=https:*/","spb","*бург","/customers/products/",System.String[])" executed="True" result="Failure" success="False" time="39.904" asserts="2">
<failure>
<message><![CDATA[ User is not authorized
Expected: not null and not <empty>
But was: <string.Empty>
]]></message>
<stack-trace><![CDATA[в QA.*.Tests.Steps.Pages.*PageSteps.PageIsAuthorizedWithUser(String login) в c:\AutoTest3\source\QA.*.Tests\QA.*.Tests\Steps\Pages\*PageSteps.cs:строка 59
в TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration)
в TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments)
в TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance)
в TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep()
в QA.*.Tests.Features.Regionality.RegionalityFeature._10CorrectRegionSwitchoverWithAuthorization(String login, String password, String region, String loginUrl, String newRegion, String newRegionTitle, String expectedUrl, String[] exampleTags) в c:\AutoTest3\source\QA.*.Tests\QA.*.Tests\Features\Regionality\Regionality.feature:строка 26
]]></stack-trace>
</failure>
</test-case>
</results>
</test-suite>
<test-suite type="ParameterizedTest" name="_9CorrectRegionSwitchover" description="#9 Correct region switchover" executed="True" result="Success" success="True" time="24.251" asserts="1">
<categories>
<category name="*Page" />
<category name="ErrorPage" />
</categories>
<properties>
<property name="Description" value="#9 Correct region switchover" />
</properties>
<results>
<test-case name="QA.*.Tests.Features.Regionality.RegionalityFeature._9CorrectRegionSwitchover("moskva","/cu*/","spb","Санкт-Петербург",System.String[])" executed="True" result="Success" success="True" time="24.249" asserts="1" />
</results>
</test-suite>
</results>
</test-suite>
내가 내 설정은 다음과 같습니다 Logstash 를 선택이를 위해 elasticsearch 에 넣어하기 위해 JSON으로이를 변경할 필요가 있습니다 :
input {
file {
path => "C:\AutoTest3\report\test.xml"
start_position => "beginning"
sincedb_path => "NUL"
codec => multiline {
pattern => "</test-suite>"
negate => true
what => "previous"
auto_flush_interval => 1
}
}
}
filter {
xml {
source => "message"
target => "message.parsed"
xpath => [
"/test-suite/results/test-suite/@name", name,
"/test-suite/results/test-suite/@success", success
]
force_array => false
}
mutate {
remove_field => [ "path","@timestamp","host","tags","@version"]
}
}
output {
file {
codec => "json"
path => ["C:/Logstash/temp.json"]
}
}
이 XML에서
나는 두 개의 항목으로 JSON을해야합니다 이름 성공
{
"success": ["False"],
"name": ["_10CorrectRegionSwitchoverWithAuthorization"]
}
{
"success": ["True"],
"name": ["_9CorrectRegionSwitchover"]
}
하지만 logstash가 여기에 2 개의 이벤트가 있음을 이해할 수 있도록 여러 줄로 패턴을 작성할 수있는 방법을 이해할 수 없습니다.