如何计算应用程序在测试执行期间所花费的总体等待时间?

时间:2018-03-13 03:02:20

标签: robotframework

我为等待功能创建了常用关键字,如下所示

Wait_Function
    [Arguments]    ${Element}
    Wait Until Keyword Succeeds     120s     2s    Element Should Be Visible      ${Element}

Wait_Function_For_Text
    [Arguments]    ${Element}    ${Text}
    Wait Until Keyword Succeeds     120s     2s    Element Should Contain      ${Element}    ${Text}

我打电话给这个" Wait_Function" /" Wait_Function_For_Text"在应用程序需要时间加载元素的地方,如下所示:

Function A
    Click Element    ${Add}
    Wait_Function     ${Save}
    Click Element      ${Save}
    Wait_Function     ${Home_Icon}

Function B
    Scroll Element Into View    ${Add}
    Wait_Function     ${Add}
    Click Element      ${Add}
    Wait_Function_For_Text    id=SuccessMsg      User added successfully

类似地,在许多测试用例(函数C,函数D,...)

中使用了这个常用的Wait关键字

现在,我想计算每个测试用例的等待时间以及验证性能的总体累积等待时间。

我需要像

这样的输出
 Wait time for Function A:        00:00:01:750 (1 sec 750 ms)
 Wait time for Function B:        00:00:00:350 (350 ms)
 Overall Cumulative Wait time:    00:00:02:100 (2 sec 100 ms)

任何输入/建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

运行机器人套件时,它会生成一个XML文件。每个关键字(包括函数A和函数B)都作为XML元素存在。例如:

<kw library="BuiltIn" name="Get Time">
<doc>Returns the given time in the requested format.</doc>
<arguments>
<arg>year month day</arg>
</arguments>
<assign>
<var>${year}</var>
<var>${month}</var>
<var>${day}</var>
</assign>
<msg level="INFO" timestamp="20180315 17:22:00.692">${year} = 2018</msg>
<msg level="INFO" timestamp="20180315 17:22:00.692">${month} = 03</msg>
<msg level="INFO" timestamp="20180315 17:22:00.693">${day} = 15</msg>
<status endtime="20180315 17:22:00.693" starttime="20180315 17:22:00.690" status="PASS"></status>
</kw>

请注意最后一个孩子status。它有两个时间戳:starttimeendtime

要获取函数的累计时间,您可以编写处理此XML文件的脚本或程序,为关键字的每个实例计算endtimestarttime之间的差异。和函数B并计算这些差异的总和。