-1

HP UFT API 测试 - 保存响应/检查点值

我面临同样的挑战并找到了上面的线程,但是,我试图弄清楚下面的内容。

如何在 Excel 的单独列中打印不同的响应值。

我有 4 个回复,我可以添加第一个回复,它在 excel 中正确显示。

当我添加第二个响应值时,它会打印在同一个单元格中,或者如果我将两个响应值放在单独的行中,它会打印在单独的单元格中但在一行中,并且我需要将每个响应打印在单独的列中。

ID | PersonName | Address | ZipCode

当您转到属性选项卡下的写入文件时,只有一个内容字段,因此我可以在表达式下添加多个输出,但是它们都在同一行中导出。

我正在使用 Rest 和 Json UFT-API 版本 12.52

有任何想法吗?

更新 1:@ManishChristian

谢谢马尼什。我无法执行脚本。我的工作表位于我的桌面上,所以我假设不需要添加 sql 信息或连接到数据库。

这就是我的代码的样子:

string price;
price = this.CodeActivity50.Input.Amount.ToString();
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\\Users/Batman/Desktop/sendAmount.xlsx';Extended Properties=Excel 12.0;Persist Security Info=False");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "INSERT into [Sheet1] (COLUMN1) values('" + price + "')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MyConnection.Close();

抛出的错误:

Microsoft Access 数据库引擎找不到对象“Sheet1”。确保对象存在并且正确拼写其名称和路径名。如果“Sheet1”不是本地对象,请检查您的网络连接或联系服务器管理员。

我的工作表名称设置为 Sheet1

4

1 回答 1

0

CustomCode这是使用in将数据写入 Excel 文件的无 SQL 方式UFT

假设:

  • 您已将所有四个变量设置Input parameterCustomCode. 这是有关如何执行此操作的链接。
  • 您已在 CustomCode 中导入了所有必需的内容,以使此代码正常工作。


C#代码:

using Excel = Microsoft.Office.Interop.Excel;
//  IMPORT OTHER REQURED CONTENTS

//  CHANGE THESE VARIABLES AS PER YOUR NEED
//  ALSO CHANGE WS_Method_Type, WS_Method_Name, sEnvironment, TestDataSet_Val  
//  FROM BELOW LINES AS PER YOUR INPUT VARIABLE NAMES
String wsMethodType     = this.CodeActivity16.Input.WS_Method_Type.ToString();
String wsMethodName     = this.CodeActivity16.Input.WS_Method_Name;
String env              = this.CodeActivity16.Input.sEnvironment;
String testDataSetVal   = this.CodeActivity16.Input.TestDataSet_Val.ToString();

String sheetName        = "Sheet1";
String srcFile          = @"PATH \ TO \ YOUR \ XLSX \ FILE";

Excel.Application xlApp = null;
Excel.Workbook wb       = null;
Excel.Worksheet worksheet = null;
Excel.Range excelCell   = null;

xlApp = new Excel.ApplicationClass();
//xlApp.Visible = true;     //  UN-COMMENT ME TO SEE EXCEL
if (xlApp == null)
{
    CodeActivity16.Report("Excel error","Excel could not be started");
}

//  OPENING EXCEL TO WRITE THE DATA     
wb = xlApp.Workbooks.Open(srcFile,
                                   0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
                                   true, false, 0, true, false, false);
worksheet = (Excel.Worksheet)wb.Worksheets[sheetName];

int lastUsedRow = worksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell,Type.Missing).Row;

//  LET'S WRITE INPUT VARIABLE VALUES TO COLUMN A:D IN LAST ROW
//  CHANGE IT AS PER YOUR NEED
excelCell       = (Excel.Range)worksheet.get_Range("A" + lastUsedRow, "A" + lastUsedRow);
excelCell.Value = wsMethodType;

excelCell       = (Excel.Range)worksheet.get_Range("B" + lastUsedRow, "B" + lastUsedRow);
excelCell.Value = wsMethodName;

excelCell       = (Excel.Range)worksheet.get_Range("C" + lastUsedRow, "C" + lastUsedRow);
excelCell.Value = env;

excelCell       = (Excel.Range)worksheet.get_Range("D" + lastUsedRow, "D" + lastUsedRow);
excelCell.Value = testDataSetVal;

wb.Save();
xlApp.Workbooks.Close();
xlApp.Quit();  


笔记:

您需要添加一些错误处理和清理代码,因为这不是最终代码。

于 2017-01-26T21:14:23.463 回答