Ejemplo n.º 1
0
 def start_suite(self, suite):
     if self.state_tags is None:
         # We don't have Mongo db connection do fatal error
         fail_suite = TestSuite(name='Fatal error')
         tc_fatal_error = fail_suite.tests.create("Fatal MongoDB error")
         tc_fatal_error.keywords.create(
             'Fatal error',
             args=[
                 "RPA Mongodb Server not available or authentication failed. Please check connection parameters."
             ])
         suite.tests.insert(0, tc_fatal_error)
     else:
         # Remove tasks from suite based on RPA status (which was already executed in other robot run)
         filtered_tests = []
         for test in suite.tests:
             remove_test = False
             for tag in self.state_tags:
                 if tag in test.tags:
                     remove_test = True
                     break
             if not remove_test:
                 filtered_tests.append(test)
         suite.tests = filtered_tests
         # Add task to setup robot data in begin of suite
         rpa_suite = TestSuite(name='Rpa data')
         tc_rpa_data = rpa_suite.tests.create("Get data from database")
         tc_rpa_data.keywords.create('Setup data',
                                     args=[self.runid, self.robotname])
         suite.tests.insert(0, tc_rpa_data)
Ejemplo n.º 2
0
    def __init__(self, name, librarys=["SeleniumLibrary"]):
        # 创建测试套件
        self.suite = TestSuite(name)

        # 导入SeleniumLibrary
        for lib in librarys:
            self.suite.resource.imports.library(lib)
Ejemplo n.º 3
0
def _start_server(interface, server_conf, robot_conf):
    suite = TestSuite('RFServer', rpa=True)
    suite.resource.imports.library('RFServer', args=[interface, server_conf])
    test = suite.tests.create('RFserver Task')

    if version.parse(VERSION) < version.parse('4.0.0'):
        test.keywords.create('RFServer.Main Loop')
    else:
        test.body.create_keyword('RFServer.Main Loop')
    suite.run(**robot_conf)
Ejemplo n.º 4
0
def try_to_run_it(suite):
    print "here we go!"

    # create a test suite object
    from robot.api import TestSuite
    suite = TestSuite('Autogenerated Suite')

    for testcase in suite.testcases:
        import pdb
        pdb.set_trace()
Ejemplo n.º 5
0
def addTestSuite(name):
    """ Initialize Robot test suite object """
    global suite
    suite = TestSuite("name")
    suite.resource.imports.resource("browser.robot")

    robotfile.append("*** Generated from fMBT ***")
    robotfile.append("*** Settings ***")
    robotfile.append("Resource  browser.robot")
    robotfile.append("")
    robotfile.append("*** Test Cases ***")
Ejemplo n.º 6
0
def _build_rf_suite(datasources, settings, tests):
    parent_suite = TestSuite(datasources[0])
    rf_test_to_actual = {}
    current_suite = parent_suite
    for actual_test, module_name in tests:
        if current_suite.name != module_name:
            current_suite = parent_suite.suites.create()
            current_suite.name = module_name
        rf_test = current_suite.tests.create()
        rf_test.name = actual_test.__name__
        rf_test.tags = actual_test.tags
        rf_test_to_actual[rf_test] = actual_test
    parent_suite.configure(**settings.suite_config)
    return rf_test_to_actual, parent_suite
Ejemplo n.º 7
0
        file_list = glob.glob('*.feature')

    print file_list

    init_suite = None
    #    if os.path.exists( '__init__.txt' ):
    #        print "__init__ found"
    #        init_suite = TestSuiteBuilder().build('__init__.txt')

    if len(file_list) == 0:
        import sys
        print "No feature files found."
        sys.exit()

    elif len(file_list) > 1:
        suite = TestSuite('Main')
        if init_suite:
            suite.suites.append(init_suite)

        for f in file_list:
            feature_suite = read_feature(f)
            suite.suites.append(feature_suite)

    else:
        if init_suite:
            suite = TestSuite('Main')
            suite.suites.append(init_suite)
            feature_suite = read_feature(file_list[0])
            suite.suites.append(feature_suite)

        else:
Ejemplo n.º 8
0
    return cp_steps


yaml_file = '..\\cases.yaml'

yaml_obj = yaml_to_obj(yaml_file)
configs = get_yaml_configures(yaml_obj)
testcases = get_yaml_cases(yaml_obj)

suite_name = configs.get('suite_name')
librarys = configs.get('librarys')
librarys_path = configs.get('librarys_path')
suite_steps = configs.get('steps')

suite = TestSuite(suite_name)
for _lib in librarys:
    suite.resource.imports.library('{}'.format(_lib))

# un-comment follows line, see what happen
suite_steps = order_suite_setup_and_teardown(suite_steps)
create_case_step(suite, suite_steps)

for case in testcases:
    test_case_name = case.get('name')
    tags = case.get('tags')
    steps = case.get('steps')
    assertions = case.get('assertions')

    # test = suite.tests.create(test_case_name, tags=tags)
    test = suite.tests.create(test_case_name, tags=tags)
Ejemplo n.º 9
0
 def setUp(self):
     self.suite = TestSuite('Test low level keywords')
     self.suite.resource.imports.library('VnfValidator')
Ejemplo n.º 10
0
 def __init__(self):
     self.suite = TestSuite()
     librarys = ["Selenium2Library"]
     for lib in librarys:
         self.suite.resource.imports.library(lib)
Ejemplo n.º 11
0
#-*- coding:utf-8 -*-#-*- coding:utf-8 -*-
from robot.api import TestSuite
from robot.api import ResultWriter

if __name__ == '__main__':
    print("robot framework实例")

    # 创建套件
    suite = TestSuite("搜索测试套件")
    # 导入seleniumLibrary库
    suite.resource.imports.library("SeleniumLibrary")

    # 以下是测试步骤
    # 创建测试用例:启动浏览器
    test_01 = suite.tests.create("启动浏览器")
    test_01.keywords.create("Open Browser",
                            args=["http://www.baidu.com", "Chrome"])
    test_01.keywords.create("Title Should Be",
                            args=["百度一下,你就知道"])

    # 创建测试用例:搜索测试
    test_02 = suite.tests.create("关键字搜索测试")
    test_02.keywords.create("Input Text",
                            args=["id=kw","Python"])
    test_02.keywords.create("Click Button",
                            args=["id=su"])
    test_02.keywords.create("Sleep", args=["5s"])

    # 创建测试用例:断言验证搜索结果页标题
    test_03 = suite.tests.create("断言验证搜索结果页标题")
    test_03.keywords.create("Title should be",
Ejemplo n.º 12
0
def build_keywords(parsed_keywords, suite):
    for name, settings, steps in parsed_keywords:
        kw = suite.keywords.create(name=name)
        for name, value in settings:
            pass
        for assign, name, args in steps:
            if assign is not None:
                assign = [assign]
            else:
                assign = []
            kw.keywords.create(name=name, assign=assign, args=args)
    return suite


if __name__ == '__main__':
    data = open(sys.argv[1]).read()
    sections = parse_sections(data)
    parsed_settings = setting_parser.parse(sections['SETTING'])
    parsed_variables = variable_parser.parse(sections['VARIABLE'])
    parsed_tests = testcase_parser.parse(sections['TESTCASE'])
    parsed_kws = keyword_parser.parse(sections['KEYWORD'])
    print(parsed_kws)

    suite = TestSuite('test suite name')
    suite = build_settings(parsed_settings, suite)
    suite = build_variables(parsed_variables, suite)
    suite = build_tests(parsed_tests, suite)
    suite = build_keywords(parsed_kws, suite)
    suite.run(outputdir=tempfile.gettempdir(), log='log.html')
Ejemplo n.º 13
0
def create_suite(name):

    return TestSuite(name)
Ejemplo n.º 14
0
from robot.api import TestSuite

suite = TestSuite('Activate Skynet')
suite.resource.imports.library('OperatingSystem')
test = suite.tests.create('Should Activate Skynet', tags=['smoke'])
test.keywords.create('Set Environment Variable', args=['SKYNET', 'activated'], type='setup')
test.keywords.create('Environment Variable Should Be Set', args=['SKYNET'])
Ejemplo n.º 15
0
def read_feature(filename):
    print '=' * 78
    print 'Parsing feature: %s' % filename
    print '=' * 78
    keywords = []

    file_feature = os.path.splitext(os.path.basename(filename))[0]
    my_resource = filename.replace('.feature', '.txt')

    if not os.path.exists(my_resource):
        my_resource = filename.replace('.feature', '.html')
        if not os.path.exists(my_resource):
            print "\033[1;31;40mWARNING:\033[1;37;40m No resource file for this feature (%s.[txt|html])\033[0m" % file_feature
            my_resource = None

    suite = TestSuite(file_feature)
    suite.imports.library('OperatingSystem')

    if my_resource:
        #print 'Found keywords:'
        resource = ResourceFile(my_resource).populate()
        for k in resource.keywords:
            #print ' %s' % k.name
            keywords.append(k.name.lower())

        suite.imports.resource(my_resource)
        #print '-' * 78
    #else:
    #    resource = ResourceFile(filename.replace('.feature', '.html' ))

    #print keywords

    in_scenario = False
    lineno = 0
    cnt_steps = 0
    undefined_steps = []

    f = open(filename, 'r')
    for line in f:
        lineno += 1
        if line.strip():
            l = line.strip()
            if line[:8] == 'Feature:':
                print "\033[1;37;40m%s\033[0m" % line.rstrip()

            elif l[:9] == 'Scenario:':
                print "\033[1;37;40m%s\033[0m" % line.rstrip()
                current_scenario = l[9:].strip()
                test = suite.tests.create(current_scenario)
                in_scenario = True

            elif in_scenario:
                test_step = l.strip()
                cnt_steps += 1
                test_step2 = test_step

                if test_step.split(' ')[0] in ['Given', 'When', 'Then']:
                    test_step2 = ' '.join(test_step.split(' ')[1:])

                test.keywords.create(test_step)
                print ' ' * 6,
                if test_step.lower() in keywords or test_step2.lower(
                ) in keywords:
                    print "\033[1;30;40m",
                else:
                    print "\033[33;40m",
                    if not test_step2 in undefined_steps:
                        undefined_steps.append(test_step2)

                    #kw = UserKeyword( resource, test_step2 )

                filler = ' ' * (40 - len(test_step))
                print "%s%s%s:%d\033[0m" % (test_step, filler, filename,
                                            lineno)

            else:
                print line,

    if undefined_steps:
        #resource.save()
        print ""
        print "Undefined keywords:"
        for k in undefined_steps:
            print k
        print
        print "These keywords can already be defined, but have variables in the name"
        print "or be available in a deeper resource file"
        print

    return suite
Ejemplo n.º 16
0
def build_settings(parsed_settings, suite):
    for name, data in parsed_settings:
        setting = suite.resource.imports.create(type=name, name=data[0])
    return suite


def build_tests(parsed_tests, suite):
    for name, steps in parsed_tests:
        test = suite.tests.create(name=name)
        for assign, name, args in steps:
            if assign is not None:
                assign = [assign]
            else:
                assign = []
            test.keywords.create(name=name, assign=assign, args=args)
    return suite


if __name__ == '__main__':
    data = open(sys.argv[1]).read()
    sections = parse_sections(data)
    parsed_settings = parse_section(sections['SETTING'], SettingLexer,
                                    SettingParser)
    parsed_tests = parse_section(sections['TESTCASE'], TestCaseLexer,
                                 TestCaseParser)

    suite = build_tests(
        parsed_tests,
        build_settings(parsed_settings, TestSuite('test suite name')))
    suite.run(outputdir=tempfile.gettempdir())
Ejemplo n.º 17
0
 def __init__(self, name):
     # 创建TestSuite
     self.testSuite = TestSuite(name)
Ejemplo n.º 18
0
from robot.api import TestSuite

suite = TestSuite('Login')
suite.resource.imports.library('ITASLibrary')

test = suite.tests.create('LoginTest', tags=['smoke'])
print type(test)
test.keywords.create('SetBaseUrl', args=[ 'http://192.168.168.151:8080'], type='setup')
loginResp=test.keywords.create('login', args=[ 'REGSUP201504','1234a*'])
print type(loginResp)




result = suite.run(critical='smoke', output='skynet.xml')