我正在运行系统性能测试,我需要检查CSV文件中的测试结果。例如,我的test.csv文件在下面共享:
https://docs.google.com/spreadsheets/d/1lUldk4N_5kEAETWdd2B5-x0UOpA_O0aus7x49fEqnPk/edit?usp=sharing
请注意,结果“通过”或“失败”将是超链接。
问题:我需要检查驱动程序问题测试是否通过。例如,如果我运行100个周期,deviceproblem下的结果将被列出100次。如果100个周期中甚至只有1个失败,则该测试被视为失败。
我能够在“ driverproblem”字段下获取一行的值(结果),但是我正在获得该行中存在的所有其他字段的超链接的结果,而不仅仅是一个字段。
有什么办法,我可以在以下字段中获得结果“ PASS”或“ FAIL”:“ driverproblem”或“ Devicemanager”或“ Crash”?
我尝试过以下方法:
with open(filename, 'r') as csv_file:
for index,row in enumerate(csv_file):
if "driverproblem" in row.split(','):
for i in range(10):
line = csv_file.next().split()
a= line[2].split(',')
print a
但是我得到的结果如下:
['PASS:Basictest“”)“','” = HYPERLINK(“” .. \ .. \ Reports \ testreport_03-20-19-07-37-01 \ 1.1.1_test_os \ Driver_info.xml“” ','“” PASS“”)“','” = HYPERLINK(“ .. \ .. \ Reports \ testreport_03-20-19-07-37-01 \ 1.1.1_TEST_SYS \ drivertest_Log_Delta.xml”“',' '“”“ PASS”“)”','“ = HYPERLINK(” .. \ .. \ Reports \ testreport_03-20-19-07-37-01 \ systemtestlogss \ systemtestlogs.csv“”','“” PASS “”)“','” = HYPERLINK(“ .. \ .. \ Reports \ testreport_03-20-19-07-37-01 \ systemtestlogss \ systemtestlogs.csv”“','”“ PASS”“)” ','“ = HYPERLINK(”“ .. \ .. \ Reports \ testreport_03-20-19-07-37-01 \ systemtestlogss \ systemtestlogs.csv”“,'”“ PASS:Connected(via'] >
而我只需要一个字段
""=HYPERLINK(""..\\..\\Reports\\testreport_03-20-19-07-37-01\\1.1.1_TEST_SYS\\drivertest_Log_Delta.xml""', '""PASS"")"
,位于csv文件的“ Drivertest”字段下。
答案 0 :(得分:0)
尝试一下:
with open("test.csv", 'r') as csv_file:
arr = []
crash = []
devicemanager = []
for row in csv_file:
rowarr = row.split(',')
arr.append(rowarr)
devicemanager.append(rowarr[5])
crash.append(rowarr[7])
输出:
['\n', '\n', '\n', '\n', '\n', '\n', 'Crash\n', 'PASS\n', 'NA'] ['', '', '', '', '', '', 'Devicemanager', 'PASS', 'NA']
您可以遍历列表崩溃和设备管理器以找到“通过”和“失败”字段。请注意,这是test.csv的第5列和第7列。
Total No Of Cycles,2,,,,,,
Passed Cycles,2,,,,,,
Failed Cycles,0,,,,,,
Ignored Cycles,0,,,,,,
,,,,,,,
,,,,,,,
Cycle Number,Cycle PASS/FAIL,Expected State,Test,Driver problem,Devicemanager,Memory Dump,Crash
1,PASS,S4,PASS:S4,PASS,PASS,PASS,PASS
2,PASS,S4,PASS:S4,NA,NA,NA,NA
声明:Python 2.7将于2020年1月1日到期,请升级您的Python,因为在该日期之后将不再维护Python 2.7。 源:repl.it
要获得更干净的版本,请使用csv模块-更快地编写代码:
import csv
csv_file_path = 'test.csv'
csvFile = open(csv_file_path,'r')
csvrdr = csv.reader(csvFile, delimiter=',')
devicemanager = []
crash = []
for row in csvrdr:
devicemanager.append(row[5])
crash.append(row[7])
print(crash)
print(devicemanager)
输出:
['', '', '', '', '', '', 'Crash', 'PASS', 'NA'] ['', '', '', '', '', '', 'Devicemanager', 'PASS', 'NA']
这两个示例都可以在python 2和3上运行,因此,由于不推荐使用python 2,因此您应该考虑升级到python 3。