我基本上是在学习机器人框架中的数据参数化(主要是基于Web的测试作为上下文)。我有4分,我希望得到报道。所有这四点都相互关联很多。
第一个 - 代码问题
我希望使用for循环迭代列表变量的值,但无法访问第n个值。
我可以使用以下内容而没有错误:
Input Text //textarea[@id="MainContent_txtAddress"] @{Address}[1]
但是,当我使用for循环访问值时,我收到此错误:
Starting test: RobotFrameworkcode.Nsure.ForLoop
20150105 18:26:05.484 : FAIL : Resolving variable '${jobcode[i]}' failed: NameError: name 'i' is not defined
Ending test: RobotFrameworkcode.Nsure.ForLoop
导致错误的for循环片段。
ForLoopTest
: FOR ${i} IN Range |0| |1|
\ Log to Console @{jobcode[i]}

有没有更好的方法来访问第n个元素的列表变量的值。 列表变量是否与数组类似?
答案 0 :(得分:2)
<强> 1。 NameError:name&#39; i&#39;未定义
当您使用扩展变量语法时,花括号中的所有内容都由python解释器计算。但是,代码中的i
是机器人变量,而不是python变量。另外,要访问数组的单个元素,您需要使用$
而不是@
。为了做你想做的事,你需要这样做:
Log to Console ${jobcode[${i}]}
<强> 2。来自excel的参数
您可以创建一个从csv文件中读取数据的机械手库。您也可以使用.xls文件执行此操作。有关读取csv文件的示例,请参阅此答案:https://stackoverflow.com/a/21859360/7432
第3。关于其他人如何进行数据参数化的任何其他想法?
我的团队使用YAML文件来定义测试数据。它也可以从XML文件或任何其他可通过python读取的格式中读取。 Robot允许你将python方法公开为关键字,所以你可以在python中做任何你可以在机器人测试中做的事情。
<强> 4。我想知道是否有任何好的教程或网站或视频
要求指向教程和网站是关于堆栈溢出的主题。但是,您熟悉以下资源吗?
答案 1 :(得分:0)
可以使用csv或excel数据源实现参数化。我们的团队使用excel实现了它,共享了可以提供帮助的参考代码
http://www.ufthelp.com/2016/01/robot-framework-working-with-excel_28.html