如何在机器人框架中进行数据参数化

时间:2015-01-05 14:02:55

标签: testing automated-tests robotframework

我基本上是在学习机器人框架中的数据参数化(主要是基于Web的测试作为上下文)。我有4分,我希望得到报道。所有这四点都相互关联很多。

  1. 第一个 - 代码问题

    我希望使用for循环迭代列表变量的值,但无法访问第n个值。

  2. 我可以使用以下内容而没有错误:

    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个元素的列表变量的值。 列表变量是否与数组类似?

    1. 我想将值传递给数据输入表单中的文本框 参数化格式通过excel表或csv或通过 表示页面的列表变量的集合,这是可能的 在机器人框架?需要有关示例和示例代码的帮助 一样的我在互联网上找不到有关的内容 相同。
    2. 关于其他人如何进行数据参数化的任何其他想法 机器人框架。使用什么机器人框架工具或概念 为了同样的?
    3. 第三,我想知道是否有任何好的教程或 网站或视频,以帮助学习机器人框架。该 官方文档很好,但我正在寻找更多内容 例如,以便使初学者能够联系起来 更快的概念。

2 个答案:

答案 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