如何使用UFT API

时间:2017-01-24 23:44:04

标签: c# hp-uft uft-api

HP UFT API Test - Saving Response/Checkpoint values

我面临同样的挑战并找到了上述帖子但是,我想弄清楚下面的内容。

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

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

当我添加第二个响应值时,它会在同一个单元格中打印,或者如果我将两个响应值放在一个单独的行中,它会打印在一个单独的单元格中,但是在一行中我需要每个响应都打印在其中“'单独的专栏。

ID | PersonName | Address | ZipCode

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

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

有什么想法吗?

更新1:@ManishChristian

谢谢Manish。我无法执行脚本。我的工作表位于我的桌面上,所以我假设不需要添加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数据库引擎找不到该对象   '工作表Sheet&#39 ;.确保对象存在,并拼写其名称和   路径名称正确。如果' Sheet1'不是本地对象,检查你的   网络连接或联系服务器管理员。

我的工作表名称设置为Sheet1

1 个答案:

答案 0 :(得分:0)

以下是使用 CustomCode UFT 将数据写入Excel文件的SQL免费方式。

假设:

  
      
  • 您已将 Input parameter 的所有四个变量设置为 CustomCode 。这是link如何做到这一点。
  •   
  • 您已在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();  


注意:

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