30. November 2021
Excel Dateien testen
Excel-Dateien können in QF-Test über die einen einfachen Prozeduraufruf eingelesen werden, wobei die Prozedur qfs.utils.files.readExcelFile aufgerufen werden muss:
Anschließend erhält man eine Property Variable, die die verschiedenen Werte, welche in der Excel-Datei gespeichert sind, enthält. Der Name der Property Gruppe muss der Prozedur hierbei über den Parameter resultGroupName mitgeteilt werden. Im obigen Beispiel expandiert also ${resultGroup:A1} zu dem Wert welcher in der Excel-Datei in der Zelle A1 steht, ${resultGroup:A2} zu dem Wert, welcher in der Excel-Datei in der Zelle A2 steht usw.
Mithilfe der verschiedenen Prozeduren im check-Package (z.B. checkValueToBeEqual) können die einzelnen Werte anschließend überprüft werden. Gerade bei großen Excel-Dateien kann dies jedoch umständlich sein. In diesem Fall macht es Sinn eine Referenz-Excel-Datei zu erstellen. Anschließend können dann von QF-Test sowohl die Excel-Datei als auch die Referenz-Excel-Datei in unterschiedliche Property Gruppen eingelesen werden. Folgendes Jython Server Skript kann anschließend verwendet werden um die Propertygruppen miteinander zu vergleichen:
p1 = rc.lookup("groupName1")
p2 = rc.lookup("groupName2")
props1 = rc.getProperties(p1)
props2 = rc.getProperties(p2)
errors = []
for p in props1.keys():
if props2.containsKey(p):
v1 = props1.get(p)
v2 = props2.get(p)
if v1 != v2:
errors.append("%s has value %s in %s but %s in %s" % (p, v1, p1, v2, p2))
else:
errors.append("%s in %s but not in %s" % (p, p1, p2))
for p in props2.keys():
if not props1.containsKey(p):
errors.append("%s in %s but not in %s" % (p, p2, p1))
if errors:
rc.logError("\n".join(errors))