在我的网络应用程序中,我必须更新25个字段才能创建用户。 Excel中的测试数据包含100个用户的列表,其中包含所有25个字段的必填信息。
使用Robot框架,编写测试脚本的方式是从excel读取单行(单用户信息)并更新Web应用程序中的所有相应字段。
如果我只想更新10个字段(或“n”字段),我该如何在脚本中处理它?
注意:要更新的字段可能会根据测试用例进行更改。
答案 0 :(得分:1)
根据我对你的情况的了解,对于机器人来说这不是一件容易的事。但是,有一种相当简单的方法可以通过使用通用测试脚本和特定于案例的excel文件来处理此问题。
FieldName
和TabName
填充您的Excel电子表格,以便能够在页面上找到输入。我这样做的方式是:使用ExcelLibrary将TabName,FieldName和Value检索到一个列表(使用它时你似乎比我更熟悉,所以我把它留给你)。作为此步骤的结果,您将获得3个项目的列表,例如${SingleFieldOfSingleUser} # ['Tab1', 'Field1', 'aaa']
现在创建这些字段的列表:
\ Insert Into List ${SingleUser} ${ColIndex} ${SingleFieldOfSingleUser}
不是手动浏览每个可能的输入字段,而是使用通用的自定义关键字:
:FOR ${UserAttribute} IN @{SingleUser}
\ Input Attribute Into User Form ${UserAttribute}
关键字可能如下所示:
Input Attribute Into User Form
[Arguments] ${Attribute}
# Try switching to the correct Tab. If already there, don't break upon error
Run Keyword And Ignore Error Click Element ${Attribute[0]}
# Input Value
Input Text ${Attribute[1]} ${Attribute[2]}
利润!您现在可以提供包含任意数量列的Excel电子表格,具体取决于您要更新的字段。
在这里,我为您留下完整代码列表的模型:
*** Keywords ***
(...)
Read Column Data For User
${SingleUser} Create List
:FOR ${ColIndex} IN RANGE ${COLCOUNT}
( ... Excel-related code here ... )
\ ${SingleFieldOfSingleUser} Create List ${TabName} ${FieldName} ${Value}
\ Insert Into List ${SingleUser} ${ColIndex} ${SingleFieldOfSingleUser}
:FOR ${UserAttribute} IN @{SingleUser}
\ Input Attribute Into User Form ${UserAttribute}
(...)
Input Attribute Into User Form
[Arguments] ${Attribute}
Run Keyword And Ignore Error Click Element ${Attribute[0]}
Input Text ${Attribute[1]} ${Attribute[2]}
P上。秒。你真的不需要那么多FOR循环和列表来使这个东西工作,但我试图使我的解决方案尽可能接近你原来的编码模式,以防它有一些隐藏的个人价值。