我正在使用eclipse编码selenium 2测试,并且它从excel行明智地获取值。在excel表单中我想添加一个新的col,说“RESULT”。现在我怎么能写出测试结果(当测试运行时,每行对着这个col进行传递/失败
答案 0 :(得分:0)
if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
{
writeToExcel();
}
您没有将Excel作为标记,因此我假设您知道如何在那里写入值,但不知道如何判断测试是否通过。我相信上面会这样做,但是我没有在这台机器上安装Selenium,所以你可能只想尝试一下......
答案 1 :(得分:0)
testNG提供了添加侦听器的方法,这些方法将告诉您测试是通过还是失败。您可以覆盖onTestFailure, onTestSuccess
方法并定义将值写入Excel工作表的方法。您可以查看有关听众here
答案 2 :(得分:0)
好吧,我正在使用Apache POI来读取和写入Excel数据。 要检查测试用例是通过还是失败,您可以在断言周围使用 try - catch 。 如果任何断言失败,则表示您的测试用例失败,然后您可以在catch块中的Excel中将该测试用例标记为FAIL。
确保在catch块结尾处使用以下命令
Assert.fail(e) // where e is the exception captured
这将使TestNG将此执行报告为FAIL。如果没有使用,那么TestNG会将此执行报告为PASS。
以下是我用于将结果写入Excel的函数:
FilePath = excel file path
_Sheet = Worksheet name
result = Pass / Fail string that you want to print in excel
static int _TC01_ROWCOUNTER = 1; // Defines the row number of first data element in test data excel sheet.
static int _TC01_COLUMNCOUNTER = 3; // Defines the Column position in which Result needs to be printed in test data excel sheet.
private void writeToExcel(String FilePath, String _Sheet, String result) throws Exception
{
try
{
_testdatastream = new FileInputStream(FilePath);
try
{
wb = new HSSFWorkbook(_testdatastream);
ws = wb.getSheet(_Sheet);
try
{
HSSFRow row = ws.getRow(_TC01_ROWCOUNTER);
HSSFCell cell = row.createCell(_TC01_COLUMNCOUNTER);
cell.setCellValue(result);
_testdatastream.close();
fileOut = new FileOutputStream(FilePath);
wb.write(fileOut);
fileOut.close();
_TC01_ROWCOUNTER++;
}
catch(Exception e)
{
Logger.logger("Could not write result to test data file because of following reason"+"\n"+e,"ERR:");
}
}
catch(Exception e)
{
Logger.logger("Mentioned worksheet"+_Sheet+" not found in test data file"+"\n"+e,"ERR:");
}
}
catch(Exception e)
{
Logger.logger("Test Data file not found at location:"+FilePath+"\n"+e,"ERR:");
}
}