【发布时间】:2020-03-20 07:31:27
【问题描述】:
机器人框架世界的新手。我编写了一个 ppython 程序来比较使用 pandas 的 CSV 文件的三个 comulns 的值。到目前为止,一切都很好。程序运行成功。但是,我需要使用机器人框架来创建测试用例并将结果显示为通过或失败。下面是python程序:
import pandas as pd
# Reading the CSV file
df = pd.read_csv(r'xl1.csv', skipinitialspace=True, sep=',')
# Summation pf the two columns and giving results
sum1 = df['Gross_Salary'].sum()
sum2 = df['Deduction'].sum()
diff = sum1 - sum2
if diff == df['Net_Salary'].sum():
print("Pass")
else:
print("Fail")
上面的代码是读取一个 CSV 文件,并添加两列,然后将值与第 3 列进行比较。如果匹配,则“通过”,否则“失败”
CSV 文件:
Gross_Salary Deduction Net_Salary
100 20 80
2000 200 1500
300 0 300
下面是机器人代码:
*** Settings ***
Library SeleniumLibrary
Library Process
Library BuiltIn
*** Test Cases ***
PandaTest
${result}= run process python <path_to_xl_parse.py>
BuiltIn.Should Be Equal As Strings ${result.rc} PASS
我遇到以下错误:
PandaTest | FAIL |
2 != PASS
------------------------------------------------------------------------------
Pan | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
请帮忙, 谢谢
【问题讨论】:
-
df['Net_Salary'].sum().all中的 all 是什么? -
当我不使用“all”时,我遇到了错误。但是,现在我看到使用 sum(),错误消失了。所以它可以被忽略,也可以从主帖中删除
-
查看您的
csv文件第二行Net_Salary + Deduction != Gross_Salary。您可以使用df[~(df['Net_Salary'] == (df['Gross_Salary] - df['Deduction']))]列出失败的行 -
我真的不明白你要我对这两个代码进行哪些更改
-
您的代码没有问题,您的测试数据存在问题。 在示例数据中,第二行的逻辑
Net_Salary = Gross_Salary - Deduction失败。您需要更正您的测试数据。您可以使用上述注释中的代码列出失败的行。
标签: python robotframework