2017-08-08 125 views
1

我正在用Oracle OpenScript编写Web脚本。Oracle OpenScript在读取变量时出现“读取文件错误”

我记录进行

行动
  • 打开链接
  • 选择下拉菜单
  • 选择从区域下拉菜单
  • 保存

和我m现在尝试替换链接以从资产中创建的.csv变量打开,但我收到“错误读取文件”消息。

SCREENSHOT

下面是完整的代码:

import oracle.oats.scripting.modules.basic.api.*; 
import oracle.oats.scripting.modules.browser.api.*; 
import oracle.oats.scripting.modules.functionalTest.api.*; 
import oracle.oats.scripting.modules.utilities.api.*; 
import oracle.oats.scripting.modules.utilities.api.sql.*; 
import oracle.oats.scripting.modules.utilities.api.xml.*; 
import oracle.oats.scripting.modules.utilities.api.file.*; 
import oracle.oats.scripting.modules.webdom.api.*; 

public class script extends IteratingVUserScript { 
@ScriptService oracle.oats.scripting.modules.utilities.api.UtilitiesService 
utilities; 
@ScriptService oracle.oats.scripting.modules.browser.api.BrowserService 
browser; 
@ScriptService 
oracle.oats.scripting.modules.functionalTest.api.FunctionalTestService ft; 
@ScriptService oracle.oats.scripting.modules.webdom.api.WebDomService web; 

public void initialize() throws Exception { 
    browser.launch(); 
} 

/** 
* Add code to be executed each iteration for this virtual user. 
*/ 
public void run() throws Exception { 
    beginStep("[1] No Title (/hotelconfig.html)", 0); 
    { 
     web.window(2, "/web:window[@index='0' or @title='about:blank']") 
       .navigate(
         "URL"); 
     { 
      think(0.093); 
     } 
    } 
    endStep(); 
    beginStep("[2] Working... (/wia)", 0); 
    { 
     web.window(4, "/web:window[@index='0' or @title='about:blank']") 
       .navigate(
         "URL"); 
     web.window(
       5, 
       "/web:window[@index='0']") 
       .waitForPage(null); 
     { 
      think(6.198); 
     } 
     web.selectBox(
       6, 
       "/web:window[@index='0']/web:document[@index='0']/web:form[@index='0']/web:select[(@id='office_id' or @name='office_id' or @index='10') and multiple mod 'False']") 
       .selectOptionByText(
         "Office"); 
     { 
      think(2.636); 
     } 
     web.button(
       7, 
       "/web:window[@index='0']/web:document[@index='0']/web:form[@index='0']/web:input_submit[@name='save' or @value='Save' or @index='0']") 
       .click(); 
    } 
    endStep(); 
    beginStep(
      "[3] Intranet - Property info - *Hotel Settings - *Hotel configuration (/hotelconfig.html)", 
      0); 
    { 
     web.window(
       8, 
       "/web:window[@index='0']") 
       .waitForPage(null); 
    } 
    endStep(); 

} 

public void finish() throws Exception { 
} 
} 

我在网上看了看,Oracle的社区,但我无法找到一个解决。 我也尝试运行OpenScript诊断工具,但没有运气。

任何人有任何想法?

+0

你添加数据的至少一列一列到你的文件吗?您可以使用Excel或任何文本编辑器。文件必须是纯文本。 – glenschler

+0

是的,当然。我使用的.csv是每个列中的URL,Office,并包含标题。我试图从OpenScript中,从Excel和记事本中创建.csv,但我总是得到错误。 .csv保存在脚本的文件夹中,并设置为“相对于当前脚本” – Luca

回答

1

Oracle应用测试套件(OATS)最好支持csv数据表阅读。 你粘贴的代码只是记录你执行,没有看到任何问题。屏幕截图显示错误消息,创建csv时可能出错。

我可以建议外部Excel的读者,这是燕麦本身内置 http://www.testinghive.com/category/oracle-application-testing-suite-tips/

//Define Sheet name to be read, and provide comma seperated to read multiple sheets 
String sheetName = "Sheet1"; 
//Mention excel sheet path 
String strFile= "C:\\Demo\\test.xls"; 

//Defined array list to add Sheets to read 
List sheetList = new ArrayList(); 
sheetList.add(sheetName); 
// Iports Sheet1 
datatable.importSheets(strFile, sheetList, true, true); 
//get rowcount 
info("Total rows :"+datatable.getRowCount()); 
int rowcount=datatable.getRowCount(); 
//Loop to read all rows 
for (int i=0;i<rowcount;i++) 
{ 
//Set current row fromw here you need to start reading, in this case start from first row 
datatable.setCurrentRow(sheetName, i); 
String strCompany=(String) datatable.getValue(sheetName,i,"Company"); 
String strEmpFName=(String) datatable.getValue(sheetName,i,"FirstName"); 
String strEmpLName=(String) datatable.getValue(sheetName,i,"LastName"); 
String strEmpID=(String) datatable.getValue(sheetName,i,"EmpID"); 
String strLocation=(String) datatable.getValue(sheetName,i,"Location"); 

//prints first name and last name 
System.out.println("First Name : "+strEmpFName+", Last Name : "+strEmpLName); 

//Sets ACTIVE column in excel sheet to Y 
String strActive="Y"; 
datatable.setValue(sheetName, i, datatable.getColumn(sheetName, datatable.getColumnIndex("Active")), strActive); 

} 

//Updates sheet with updated values ie ACTIVE column sets to Y 
datatable.exportToExcel("C:\\Demo\\test1.xlsx"); 

} 

public void finish() throws Exception { 
} 
}