标签: robotframework

如何在机器人框架中导入具有常用关键字的文件?

在机器人框架中,我有一个这样的测试套件:

test-suite/
  ??? Common.robot
  ??? TestCaseA.robot
  ??? TestCaseB.robot
Run Code Online (Sandbox Code Playgroud)

该文件Common.robot定义了两个TestCaseA.robot和将使用的一些关键字TestCaseB.robot.在其他语言Common.robot中称为库,但尝试像这样导入它

*** Settings ***
Library         Commons
Run Code Online (Sandbox Code Playgroud)

或者那样

*** Settings ***
Library         Commons.robot
Run Code Online (Sandbox Code Playgroud)

导致错误.

[ ERROR ] Error in file '[...]/TestCaseA.robot': Importing test library 'Commons' failed: ImportError: No module named Commons
Run Code Online (Sandbox Code Playgroud)

该关键字Library似乎仅适用于低级别测试库.我相信还有另一种方式.用户定义的库如何包含在机器人框架中?

testing robotframework

12
推荐指数
1
解决办法
1万
查看次数

如何使用机器人框架运行无头REMOTE chrome

我正在尝试使用我的机器人框架测试套件运行chrome headless.我设法用pylen使用selenium独立完成,如下所示:

options = webdriver.ChromeOptions()
options.add_argument('--headless')
my_driver = webdriver.Remote(command_executer=my_remote_address, desired_capabilities=options.to_capabilities)
Run Code Online (Sandbox Code Playgroud)

以下代码是我在机器人中所做的但是没有用的代码:

${options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
${options.add_argument}=  Set Variable  add_argument=--headless
Create WebDriver  Chrome  chrome_options=${options}

Open Browser   http://www.google.com   chrome
Run Code Online (Sandbox Code Playgroud)

robotframework selenium2library

12
推荐指数
2
解决办法
2万
查看次数

使用robotframework-selenium时如何测试空白文本字段?

在将robotframework-seleniumlibrary与TSV文件一起使用时,如何为文本字段指定空白/空值?例如,我有以下内容:

Textfield Value Should Be       identifier=name1       Chris
Textfield Value Should Be       identifier=name2
Run Code Online (Sandbox Code Playgroud)

我想测试name2是空白的.我试过把它留空(它返回一个关于参数数量不正确的消息.我试过"",它寻找一对引号,''输入一个引号,而selenium似乎在寻找那个

selenium tsv robotframework

11
推荐指数
2
解决办法
3万
查看次数

Spock + GEB与机器人框架

以前我使用Robot Framework来自动化应用程序测试,但是新客户要求关注Spock + GEB.我从来没有使用它,但我需要快速比较其中两个工具并做出选择.请帮助我了解它们之间的区别以及每种方法的优点/缺点.

frameworks spock geb robotframework

11
推荐指数
1
解决办法
4439
查看次数

在Robot Framework中测试设置继承

我正在尝试在机器人框架中创建测试设置层次结构.

我有一个子套件,它定义了自己的测试设置 - 但这会覆盖父套件的测试设置.

我希望两个测试设置一个接一个地运行,首先是父测试设置(在init .txt中定义),然后是使用*Settings*部分定义的测试设置.

robotframework

11
推荐指数
1
解决办法
9459
查看次数

Robot Framework获取当前测试用例的名称

我有一组按测试用例分类的测试数据,我希望有一个测试设置关键字来加载每个测试用例的数据.像这样的东西会起作用:

*** Keywords ***
Load Test Data
    [Arguments]  ${test case name}
    ${data}=  Get File  ${test case name}.txt
    Set Test Variable  ${data}  ${data}

*** Testcases ***
First Test
    Load Test Data  First Test
    Log  ${data}

Second Test
    Load Test Data  Second Test
    Log  ${data}
Run Code Online (Sandbox Code Playgroud)

但是,不必在每个测试用例的开头包含"负载测试数据"关键字.是否有一个关键字可以获取测试用例的名称,所以我可以在"加载测试用例"中调用它并使其成为测试设置关键字,就像这样?

*** Settings ***
Test Setup  Load Test Data

*** Keywords ***
Load Test Data
    ${test case name}=  Get Test Case Name
    ${data}=  Get File  ${test case name}.txt
    Set Test Variable  ${data}  ${data}

*** Testcases ***
First …
Run Code Online (Sandbox Code Playgroud)

robotframework

11
推荐指数
3
解决办法
2万
查看次数

如何使用python在机器人框架中导入和使用用户定义的类

假设我在python中有一个类:

class TestClass(object):
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2

    def print_args(self):
        print arg1, arg2
Run Code Online (Sandbox Code Playgroud)

我想用来robotframework实现我的测试场景.我想从上面的类创建一个实例并调用它的方法.怎么做?我知道如何导入lib; 它应该是这样的:

Library   TestClass
Run Code Online (Sandbox Code Playgroud)

我不知道如何从这个类初始化一个对象,并通过这个对象调用类方法.如果我想用python实现它,我会写一些像这样的代码:

import TestClass
test = TestClass('ARG1', 'ARG2')
test.print_args()
Run Code Online (Sandbox Code Playgroud)

现在,我想知道如何写这个robotframework.有帮助吗?

python testing robotframework

11
推荐指数
2
解决办法
2万
查看次数

如何在Robotframework日志中打印变量值

我有一个RF测试,我需要打印变量值,而不是名称.我正在尝试" 登录控制台Num:$ {Num} ",但log.html仅显示:

**KEYWORD** BuiltIn . Log To Console Num:, ${Num}
Documentation:  
Logs the given message to the console.
Start / End / Elapsed:  20170209 12:14:05.273 / 20170209 12:14:05.273 / 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置日志级别(TRACE,DEBUG)但是没有用.我感谢你的帮助,谢谢.

robotframework

11
推荐指数
1
解决办法
2万
查看次数

我们如何在机器人框架中一次传递不同的浏览器

*** Variables ***

${BROWSER}          firefox
${URL}              http://url/
${Delay}            0  
Run Code Online (Sandbox Code Playgroud)

在我的settings.txt文件中,我有一个名为{BROWSER}的变量和关联值如上所示它是firefox

但我想要的是

*** Variables ***

@{BROWSERS}         firefox  chrome  IE  
${URL}              http://url/
${Delay}            0  
Run Code Online (Sandbox Code Playgroud)

像上面这样......所以当我首先运行测试套件时它将在firefox中运行并且在完成所有测试用例之后它将关闭firefox并将打开chrome并在chrome浏览器上再次运行所有测试用例..依此类推它将在IE上运行

那我们怎么能这样呢?

我不想手动(我的意思是逐个传递或通过编辑txt文件).完全自动....一旦我运行测试,它将自动在所有浏览器中测试.

PS:这是在settings.txt文件中,我有两个文件夹,其中我有test.txt文件.因此存在主要问题..我必须在循环中迭代这些文件夹

|-- main.py
|-- settings.txt    //in this file i have browser variable (or Array)
|-- test1
|   |-- testl.txt
|   |-- test1_settings.txt  //this will contain all the variables and user defined keyword related to test1 and 
|-- test2
|   |-- test2.txt    
|   |-- test2_settings.txt  //same as test1
Run Code Online (Sandbox Code Playgroud)

我运行这样的测试用例 $pybot test1 test2

python selenium robotframework selenium-webdriver

10
推荐指数
1
解决办法
7881
查看次数

Robot Framework调用的测试如何将信息返回给控制台

我有一个调用python方法的机器人框架测试套件.我希望该python方法在不失败测试的情况下将消息返回到控制台.具体来说,我正在尝试计划一个过程.

我可以使用"raise"将消息返回到控制台,但同时未通过测试.

 def doSomething(self, testCFG={}):
    '''
    Do a process and time it. 
    '''
testCFG['operation'] = 'doSomething'
startTime = time.time()
response=self.Engine(testCFG)
endTime = time.time()
duration = int(round(endTime-startTime))
raise "doSomething took", duration//60 , "minutes and", duration%60, "seconds."
errmsg = 'doSomething failed'
if testCFG['code']: raise Exception(errmsg)
Run Code Online (Sandbox Code Playgroud)

或者我可以使用"打印"将消息返回到日志文件并报告而不会使测试失败,但该信息仅在报告中可用,而不是在控制台中.

 def doSomething(self, testCFG={}):
    '''
    Do a process and time it. 
    '''
testCFG['operation'] = 'doSomething'
startTime = time.time()
response=self.Engine(testCFG)
endTime = time.time()
duration = int(round(endTime-startTime))
print "doSomething took", duration//60 , "minutes and", duration%60, "seconds."
errmsg = 'doSomething …
Run Code Online (Sandbox Code Playgroud)

python automated-tests frameworks robotframework

9
推荐指数
1
解决办法
6460
查看次数