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)
def __init__(self, name, librarys=["SeleniumLibrary"]): # 创建测试套件 self.suite = TestSuite(name) # 导入SeleniumLibrary for lib in librarys: self.suite.resource.imports.library(lib)
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)
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()
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 ***")
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
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:
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)
def setUp(self): self.suite = TestSuite('Test low level keywords') self.suite.resource.imports.library('VnfValidator')
def __init__(self): self.suite = TestSuite() librarys = ["Selenium2Library"] for lib in librarys: self.suite.resource.imports.library(lib)
#-*- 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",
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')
def create_suite(name): return TestSuite(name)
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'])
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
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())
def __init__(self, name): # 创建TestSuite self.testSuite = TestSuite(name)
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')