如何在Robot框架中传递命令行参数以使其可用于所有库?

潘克米什语

我为我的功能测试开发了一些用于机器人框架的库,这些库的所有变量都来自variables.py文件。以下是variables.py的代码块:

#!/usr/bin/env python

import sys
import os
import optparse
import HostProperties
import xml.etree.ElementTree as ET
from robot.api import logger

testBed = 748
tree = ET.parse('/home/p6mishra/mybkp/testLibs/TestBedProperties.xml')

class raftGetTestBedProp(object):
  def GetTestBedNumber(self):
    _attributeDict = {}
    root = tree.getroot()
    for _tbProperties in root:
        for _tbNumber in _tbProperties:
            get_tb = _tbNumber.attrib
            if get_tb['name']== str(testBed):
                get_tb2 = _tbNumber.attrib
                return root, get_tb2['name']


  def GetTestBedProperties(self, root, testBedNumber):
    propertyList = []
    for _tbProperties in root:
        get_tb = _tbProperties.attrib
        for _tbProperty in _tbProperties:
            get_tb1 = _tbProperty.attrib
            if get_tb1['name']== str(testBedNumber):
              for _tbPropertyVal in _tbProperty:
                get_tb2 = _tbPropertyVal.attrib
                if 'name' in get_tb2.keys():
                    propertyList.append(get_tb2['name'])
    return propertyList


  def GetIPNodeType(self, root, testBedNumber):
    for tbNumber1 in root.findall('tbproperties'):
      for tbNumber in tbNumber1:
        ipv4support = tbNumber.find('ipv4support').text
        ipv6support = tbNumber.find('ipv6support').text
        lbSetup = tbNumber.find('lbSetup').text
        name = tbNumber.get('name')
        if name==str(testBedNumber):
            return ipv4support, ipv6support, lbSetup



obj1, obj2 = raftGetTestBedProp().GetTestBedNumber()
ipv4support, ipv6support, lbSetup = raftGetTestBedProp().GetIPNodeType(obj1, obj2)
AlltestBedProperties = raftGetTestBedProp().GetTestBedProperties(obj1, obj2)

HostPropertyDict = {}
for testBedProperty in AlltestBedProperties:
    try:
        val1 = getattr(HostProperties, testBedProperty)
        HostPropertyDict[testBedProperty] = val1
    except:
        logger.write("Error in the Configuration data. Please correct and then proceed with the testing", 'ERROR')


for indexVal in range(len(AlltestBedProperties)):
    temp  = AlltestBedProperties[indexVal]
    globals()[temp] = HostPropertyDict[temp]

该variables.py文件返回基于测试台号在HostProperties.py文件中定义的所有变量。如果我像from variables import *在其他库中一样导入该库,它将为我提供所需的变量。

但是问题出在这里,我已经硬编码了748,所以它对我来说很好用,但是我想从中传递该测试台号信息,pybot command并使其可用于我的机器人测试用例以及所有已开发的库。

佩卡

您可以发布用于调用这些Python文件的Robot Framework代码吗?我认为您可以使用pybot -v testBed:748并将其作为参数传递给__init__您的课程。我不确定是否不知道如何启动Python变量。

有点不同的方法是使用环境变量:

#!/usr/bin/env python

import sys
import os
import optparse
import HostProperties
import xml.etree.ElementTree as ET
from robot.api import logger

testBed = os.environ['testbed']
tree = ET.parse('/home/p6mishra/mybkp/testLibs/TestBedProperties.xml')

在启动pybot之前,只需定义以下环境参数:

export testbed=748
pybot tests.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在awk脚本中传递命令行参数

如何在kubernetes中传递命令行参数?

如何在命令行中传递分组参数

如何在 sbatch 命令行中传递参数?

如何将所有命令行参数传递给Makefile中的程序?

如何倡导GNU为所有CLI命令添加“ --json”参数以使其合规?

如何从通过命令行配置的存储库中获取所有可用软件包的列表?

如何在机器人框架中将列表作为命令行参数传递?

通过命令行启动Chrome,但添加一些参数以使其自动登录到您的Google帐户

如何在Java Swing应用程序框架中处理命令行参数

如何在命令行中使用传递的参数

如何在命令行中将参数传递给SoapUI?

如何在命令行中将参数传递给testng?

如何在单个命令行中恢复我的 Firebird 数据库并修改所有者设置?

添加命令行参数以读取所有图像以创建调色板

如何使用dotnet在命令行中传递参数?

获取python中的所有命令行参数

运行gradle任务时如何在命令行中传递多个参数?

如何在 C/C++ 中通过命令行传递输入(不是参数)?

如何在NIM中通过命令行正确传递参数?

我们如何在.ini文件中传递junit Behave命令行参数

如何在Perl 6的命令行中传递任意参数列表?

如何在16位汇编程序中传递/检索DOS命令行参数?

如何在C ++中通过命令行参数传递常量int?

如何在 Luci openwrt sys.exec() 函数中传递命令行参数?

如何在Ubuntu 16.04中将命令行参数传递给atd init脚本

如何通过bash中的变量传递带有空格的命令行参数

如何检查在基于busybox的Unix系统中没有传递任何命令行参数?

如何在 LD_PRELOAD 库中获取命令行参数