我正在用Selenium和Lettuce运行Python。我想自动化测试用例,并奠定了基础。
是否可以使用多个不同的测试数据文件(.json)对不同的测试数据重复相同的功能?无需手动替换文件,而是像“先使用testdata1.json,然后使用testdata2.json,testdata3.json”等。
与不同示例一起属于的测试数据文件具有相同的键名,只是值不同。现在,我正在像这样加载json文件:
def loadTestData():
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'testdata\\testdata.json'), 'r') as f:
world.data = json.load(f)
with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'testdata\\variantdata.json'), 'r') as f:
world.variantdata = json.load(f)
我在哪里调用数据的示例如下:
def createLab(self, i=0):
self.driver.find_element(*CreateLabLocators.labname).send_keys(world.data['labdata']['labname'])
self.driver.find_element(*CreateLabLocators.city).send_keys(world.data['labdata']['city'])
self.driver.find_element(*CreateLabLocators.state).send_keys(world.data['labdata']['state'])
self.driver.find_element(*CreateLabLocators.zipcode).send_keys(world.data['labdata']['zipcode'])
self.driver.find_element(*CreateLabLocators.street).send_keys(world.data['labdata']['street'])
self.driver.find_element(*CreateLabLocators.number).send_keys(world.data['labdata']['number'])
self.driver.find_element(*CreateLabLocators.country).send_keys(world.data['labdata']['country'])
self.driver.find_element(*CreateLabLocators.website).send_keys(world.data['labdata']['website'])
self.driver.find_element(*CreateLabLocators.phone).send_keys(world.data['labdata']['phone'])
self.driver.find_element(*CreateLabLocators.fax).send_keys(world.data['labdata']['fax'])
if i:
self.driver.find_element(*CreateLabLocators.browse).send_keys(world.data['labdata']['logo_path'])
现在有一种方法可以保持功能不变,但是这次例如world.data ['labdata'] ['labname']是从\ testdata2.json文件而不是\ testdata.json文件中使用的吗?
这样,一旦Labname值将是“ TechLab”,第二次是“ BioLab”。要使该修补程序保持全自动运行,有什么解决方案?
我能想到的一种方法是“复制”所有代码,并使其使用加载了testdata2的world.data2。但是我不认为这是适当的方法,一旦有数百个testdata文件,结局就会非常糟糕。