基于Loadrunner的上線基礎數(shù)據(jù)解決方案V5.0-Oracle EBS技術文檔_第1頁
基于Loadrunner的上線基礎數(shù)據(jù)解決方案V5.0-Oracle EBS技術文檔_第2頁
基于Loadrunner的上線基礎數(shù)據(jù)解決方案V5.0-Oracle EBS技術文檔_第3頁
基于Loadrunner的上線基礎數(shù)據(jù)解決方案V5.0-Oracle EBS技術文檔_第4頁
基于Loadrunner的上線基礎數(shù)據(jù)解決方案V5.0-Oracle EBS技術文檔_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于Loadrunner的上線基礎數(shù)據(jù)解決方案PAGE2內部資料:僅供漢得使用基于Loadrunner的上線基礎數(shù)據(jù)解決方案 內部資料:僅供漢得使用 PAGEi基于Loadrunner的上線基礎數(shù)據(jù)解決方案Author: 王海軍CreationDate: 2012-9-30LastUpdated: 2015-11-10Version: 5.0文檔控制更改記錄DateAuthorVersionChangeReference2012-09-30EricWang1無之前版本2012-10-02EricWang2文檔范圍擴展為基礎數(shù)據(jù)解決方案2012-10-09EricWang3增加了普通錯誤的處理方式2012-10-19EricWang4增加了對socketmode的數(shù)據(jù)錄入介紹(chapter2&chapter9)2015-11-10Tingting.Wang5進行整合梳理查閱人NamePosition分發(fā)CopyNo.NameLocation文檔說明本文檔主要介紹了loadrunner針對ERP的Form和web兩種界面的據(jù)結構導入,對上線基礎數(shù)據(jù)的高效導入提供思路。本文檔所針對的錄制環(huán)境為win7+R12(Serverletmode)+loadrunner11。網(wǎng)絡資源/testtools/HPloadrunner版面HPloadrunner原文論壇Someotherforeignwebsites目錄TOC\o"1-4"\h\z\u文檔控制 iiChapter1 loadrunner簡介 11.1loadrunner簡介 11.1.1loadrunner簡介 11.2loadrunner腳本構成 21.2.1Vuser_init 21.2.2action 21.2.3Vuser_end 21.3錄制環(huán)境簡介 21.3.1錄制環(huán)境簡介 2Chapter2 錄制登陸ERP的腳本 32.1新建Form導入工程 32.1.1打開Loadrunner 32.1.2選擇錄制協(xié)議(serverletmode&socketmode) 42.1.3設置錄制參數(shù) 52.1.3補充說明 62.2錄制前設置 72.2.1錄制選項設置 72.3登陸腳本錄制 92.4腳本修改 112.4.1如果EBS是serverletmode進行錄制,則需要進行如下腳本修改: 112.4.2如果EBS是socketmode進行錄制 122.5腳本replay 122.6小結 12Chapter3 行結構數(shù)據(jù)的導入 133.1簡介 133.2錄制前的準備 133.2.1分析界面 133.2.2哪些操作需要循環(huán)? 143.3腳本的錄制 143.3.1Vuser_init腳本錄入 143.3.2action腳本錄入 143.3.3vuser_end腳本錄入 153.4參數(shù)和循環(huán)的設置 153.4.1如何設置參數(shù)化選項? 153.4.2如何設置循環(huán)次數(shù)? 173.5腳本的完成 17Chapter4 頭行結構界面的分類 184.1本章簡介 184.2頭行結構的分類 184.2.1“一對一”的頭行結構 184.2.2“一對多”的頭行結構 194.3關系型數(shù)據(jù)庫數(shù)據(jù)的唯一結構(行結構) 204.3.1由關系型數(shù)據(jù)庫發(fā)散開去 204.3.2多層嵌套關系的變通實現(xiàn) 20Chapter5 C語言控制RadioButtonGroup的輸入 215.1本章簡介 215.1.1簡介 215.2錄制前的準備 215.2.1分析界面 215.3腳本的錄制 225.3.1Vuser_init腳本錄制 225.3.2action腳本錄入 225.3.3vuser_end腳本錄入 235.4參數(shù)和循環(huán)的設置 235.4.1測試數(shù)據(jù)說明 235.4.2參數(shù)化的設定 235.4.3循環(huán)的設定 255.5腳本的修改 255.6腳本的完成 26Chapter6 頭行結構界面的數(shù)據(jù)導入 276.1本章簡介 276.2錄制前的準備 276.2.1分析界面 276.3區(qū)域數(shù)據(jù)的導入(頭) 286.3.1腳本的錄制 286.4貨位數(shù)據(jù)的導入(行) 286.4.1流程分析 286.4.2腳本的錄入 29Chapter7 幾個疑難問題的解決 307.1本章簡介 307.1.1簡介 307.2 窗口名稱動態(tài)變化 307.2.1問題描述 307.2.2問題解決辦法 317.3 Grid界面的數(shù)據(jù)錄入 317.3.1問題描述 317.3.2問題解決辦法 317.4跨環(huán)境登陸腳本的錄入 327.4.1問題描述 327.4.2問題解決辦法 32Chapter8 web界面的數(shù)據(jù)導入 338.1本章簡介 338.1.1簡介 338.2web界面數(shù)據(jù)導入 338.2.1選擇協(xié)議 338.2.2錄制參數(shù)的設置 348.2.3腳本錄制 358.2.4腳本修改 368.2.5設置參數(shù)替代和迭代次數(shù) 36Chapter9 基礎數(shù)據(jù)解決方案 379.1本章簡介 379.2三個主要問題 379.2.1基礎數(shù)據(jù)整理部分的三個主要問題 379.3六步解決方案 379.3.1解決上述問題的六個步驟 379.3.2步驟一:制作loadrunner數(shù)據(jù)導入模板 389.3.3步驟二:錄制基礎數(shù)據(jù)腳本 389.3.4步驟三:收集并整理基礎數(shù)據(jù) 399.3.5步驟四:將基礎數(shù)據(jù)整理成loadrunner數(shù)據(jù)導入模板 399.3.6步驟五:在目標環(huán)境導入基礎數(shù)據(jù) 399.3.7步驟六:數(shù)據(jù)校驗 399.4小結 40Chapter10 總結 4110.1本章簡介 4110.1.1簡介 4110.2對界面開發(fā)的指導意義 4110.2.1級聯(lián)LOV的界面設計 41Chapter11 附錄 4211.1Q&A 4211.1.1問題:Windoworobjectisdisabled 4211.1.2問題:csv參數(shù)中包含comma 4411.1.3問題:ifErrorexpired(5) 4611.1.4問題:loadrunner記錄不到腳本 4611.1.5問題:Windoworobjectisnotdisplayed 4711.1.6問題:職責找不到 4811.1.7問題:服務器是socket傳輸協(xié)議 4811.1.8問題:iteration數(shù)值設置 50Chapter

1 loadrunner簡介本章主要介紹loadrunner的原理1.1loadrunner簡介1.1.1loadrunner簡介問:Loadrunner是什么?答:Loadrunner是一款壓力測試工具;問:Loadrunner是通過何種原理進行壓力測試?答:Loadrunner是通過腳本來模擬用戶在終端(web頁面或應用),來產生虛擬用戶訪問。在Loadrunner的壓力測試模塊,可以同時并發(fā)大量(可指定)的虛擬用戶,同時進行預錄制的腳本操作,直接與server進行交互,對sever產生大量的負載。通過調節(jié)并發(fā)用戶數(shù),來查看系統(tǒng)能承受的壓力負載情況。具體指標依照不同性能需求而定。 問:聽說Loadrunner可以用來導數(shù)據(jù)?答:答案是肯定的。Loadrunner可以錄制用戶在web頁面的腳本,事后運行腳本可模擬用戶操作,因此,如果我們錄制的腳本是數(shù)據(jù)錄入的,那么我們只要在腳本錄制后對其進行簡單修改,通過reply和參數(shù)化替代,即可用來向系統(tǒng)中導數(shù)據(jù)。問:用loadrunner導入數(shù)據(jù)的時候,是否會和form錄入一樣有數(shù)據(jù)驗證?答:有。因為loadrunner運行的腳本是通過form界面錄制的,二者與server交互的原理均是一樣的。而Form/server架構看似是C/S架構,實則是B/S架構。數(shù)據(jù)驗證均是在server端進行,這也是為什么我們做客戶化開發(fā)時,要遵循在Form上僅僅是事件觸發(fā),在server端進行數(shù)據(jù)驗證的一個重要原因。問:作為功能顧問,為什么要學這種工具?答:1.導數(shù)據(jù);2.壓力測試。 問:我還有其他問題,怎么辦?答:百度或者谷歌去。上述三個問題,讓你了解Loadrunner的基本作用和原理,如果想了解更多,互聯(lián)網(wǎng)無疑是最好的工具。1.2loadrunner腳本構成Loadrunner腳本主要由以下三個部分組成:Vuser_init、action、Vuser_end。下面將分別介紹這三者的含義和用途。1.2.1Vuser_initVuser_init是一個腳本的初始化部分,何為初始化部分?初始化就是在正式導數(shù)據(jù)或者模擬操作前,需要進行的系統(tǒng)操作。由于針對ERP的操作均需要登陸系統(tǒng)后,進入相應的界面,才能進行操作,那么,“登陸系統(tǒng)進入目標界面”這就是一個初始化過程。1.2.2actionAction是腳本中的主體,是錄制數(shù)據(jù)導入的腳本部分。是系統(tǒng)登錄之后,在目標數(shù)據(jù)導入界面導入一條完整數(shù)據(jù)的界面操作。在運行腳本錄制的過程中,通過對該部分設置循環(huán),即可自動運行多次實現(xiàn)腳本的導入。1.2.3Vuser_endVuser_end是腳本中結束的部分,一般是錄制數(shù)據(jù)導入完成后的推出系統(tǒng)操作。Loadrunner腳本主要由上述三部分構成,可理解為“登陸系統(tǒng)”、“導入數(shù)據(jù)”和“退出系統(tǒng)”三部分組成。1.3錄制環(huán)境簡介1.3.1錄制環(huán)境簡介客戶端操作系統(tǒng):Win7;Oracle版本:R12;EBS通信模式:Serverletmode及socketmode;Loadrunner版本:11。下載地址:/us/en/software-solutions/loadrunner-load-testing/1.3.2數(shù)據(jù)庫設置需要開啟權限UPDATEfnd_nodesnSETn.server_id='OFF'--'SECURE'WHEREn.node_name='AUTHENTICATION';Chapter

2 錄制登陸ERP的腳本本章通過錄制一個簡單的ERP登陸腳本,來講解loadrunnerVuser_init部分腳本的錄制操作。在每個步驟中,將詳細介紹錄制參數(shù)的含義。2.1新建Form導入工程2.1.1打開Loadrunner打開Loadrunner11,選擇“creat/EditScripts”。2.1.2選擇錄制協(xié)議(serverletmode&socketmode)我們需要根據(jù)EBS的通信協(xié)議模式來決定選擇何種協(xié)議進行腳本錄制,EBSForm共分為兩種形式:Serverletmode及socketmode。(具體這兩種模式的區(qū)別,可以百度或谷歌。本文檔主要講解如何進行數(shù)據(jù)錄入。)Serverletmode:如果我們的form登陸URL類似下面的,即網(wǎng)址后緊跟的參數(shù)為forms,則該EBS就是使用的serverletmode。:8005/forms/frmservlet?play=&record=names&lang=ZHS&env=NLS_LANG='SIMPLIFIED+CHINESE_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='NUMERIC+DATE+LANGUAGE'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'對于此種情況我們就選擇oracleapplication11i協(xié)議進行錄制。socketmode:如果我們的form登陸URL類似下面的,即網(wǎng)址后面緊跟的參數(shù)為OA_HTML,則該EBS就是使用的socketmode。:8099/OA_HTML/frmservlet?play=&record=names&lang=ZHS&env=NLS_LANG='SIMPLIFIED+CHINESE_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='NUMERIC+DATE+LANGUAGE'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'對于此種情況,我們選擇oracleNCA協(xié)議進行錄制。操作截圖:進入VirtualUserGenerator界面,點擊“新建”按鈕,選擇需要錄制需要的協(xié)議。2.1.3設置錄制參數(shù)Recording必輸參數(shù)界面:參數(shù)說明:Applicationtype:需要錄制的應用類型,有兩個選項,一個是windows本地程序,一個是互聯(lián)網(wǎng)應用,我們選擇互聯(lián)網(wǎng)應用。Programtorecord:錄制腳本的程序,我們選擇使用IE瀏覽器,在win7下就是IE9.0.URLAddress:因為我們錄制的是互聯(lián)網(wǎng)應用,需要填寫錄制的URL。這里,直接輸入EBS的form界面的網(wǎng)址來進行輸入。該參數(shù)可以在下面界面的URL欄中找到:由于EBSform的通信mode不同,他們的form打開的URL也不同,根據(jù)不同的URL進行選擇:Serverletmode::8005/forms/frmservlet?record=names,問號后面的參數(shù)是針對form界面的配置參數(shù),包含了語言等參數(shù),如果要進入中文的form環(huán)境,則需要使用加上下列參數(shù)的網(wǎng)址::8005/forms/frmservlet?play=&record=names&lang=ZHS&env=NLS_LANG='SIMPLIFIED+CHINESE_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='NUMERIC+DATE+LANGUAGE'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'Socketmode::8099/OA_HTML/frmservlet?record=names,問號后面的參數(shù)是針對form界面的配置參數(shù),包含了語言等參數(shù),如果要進入中文的form環(huán)境,則需要使用加上下列參數(shù)的網(wǎng)址::8099/OA_HTML/frmservlet?play=&record=names&lang=ZHS&env=NLS_LANG='SIMPLIFIED+CHINESE_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='NUMERIC+DATE+LANGUAGE'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'WorkingDirectory:工作文件夾,默認即可。RecordintoAction:表示需要將動作錄制到哪個section中,可選Vuser_init、action和Vuser_end,可根據(jù)需要選擇:如果是需要錄入初始化信息,則選擇Vuser_init。2.1.3補充說明說明:問:何為數(shù)據(jù)傳輸協(xié)議?答:協(xié)議是網(wǎng)絡傳輸數(shù)據(jù)的一種標準。這里選擇某種協(xié)議,就會決定你將使用何種協(xié)議進行腳本錄制,以及使用何種協(xié)議進行腳本的reply(運行腳本時所基于的協(xié)議)。問:在這里我們選擇何種協(xié)議?答:針對oracleform界面的數(shù)據(jù)導入,我們根據(jù)EBS的通信模式進行選擇,serverletmode,我們選擇oracleapplication11i;如果是socketmode,我們選擇oraclenca協(xié)議。2.2錄制前設置在錄制之前,需要對錄制選項進行設置:2.2.1錄制選項設置PortMapping設置:大圖:Correlation設置:上述兩點設置完成之后,點擊“StartRecording”界面的的“OK”按鈕,即可開始進行腳本的錄制。Recordscript設置:2.3登陸腳本錄制我們需要將登陸腳本錄制在Vuser_initsection中,點擊OK,開始錄制;直接進入form界面,登陸系統(tǒng):登陸系統(tǒng),選擇職責,選擇組織,進入到數(shù)據(jù)錄入目標界面:Loadrunner腳本記錄,在進行腳本錄入的時候,我們可以看到在操作的同時,該軟件會不斷的記錄操作并生成腳本:結束錄制:點擊該按鈕,即可停止錄制。2.4腳本修改2.4.1如果EBS是serverletmode進行錄制,則需要進行如下腳本修改:在R12中,只能通過Oraclewebapplication11i的方式錄制和運行腳本,錄制腳本之后,更新登陸系統(tǒng)的程序段vuser_init中的web_concurrent_start(NULL);web_url("lservlet;jsessionid=c0a8000856278fe2b7b526604585b11a98f9ec0f459c.e38Lb3aObxqLc40TahmQbhqNbhb0","URL=http://xxx:8011/forms/lservlet;jsessionid=c0a8000856278fe2b7b526604585b11a98f9ec0f459c.e38Lb3aObxqLc40TahmQbhqNbhb0?ifcmd=getinfo&ifhost=***&ifip=*****","Resource=1","RecContentType=application/octet-stream","Referer=","UserAgent=Mozilla/4.0(WindowsXP5.1)Java/1.6.0_07",LAST);將上段程序更改為web_concurrent_start(NULL);web_url("lservlet;jsessionid=","URL=http://xxx:8011{NCAJServSessionId}?ifcmd=getinfo&ifhost=***&ifip=*****","Resource=1","RecContentType=application/octet-stream","Referer=","UserAgent=Mozilla/4.0(WindowsXP5.1)Java/1.6.0_07",LAST);2.4.2如果EBS是socketmode進行錄制無需修改腳本2.5腳本replay點擊replay按鈕,即可針對剛才錄制的腳本進行回放:回放過程中,有可能會出現(xiàn)問題,請重新核對是否按照本文檔正確設置。如果本文檔未提及,請自行解決。2.6小結至此,一個最簡單的腳本就錄制完成了。通過這個例子,我們可以看到loadrunner的工作過程,在體會到它是如何工作的同時,可以多了解一下該軟件的工作原理。本章我們還介紹了針對serverletmode和socketmode兩種模式下,如何進行腳本的錄制。通過后面的實踐,我們可以知道,兩種協(xié)議的區(qū)別,僅僅存在于用戶登錄部分。即:對于serverletmode和socketmode兩種情況下的界面,我們分別用oracleapplication11i和oraclenca協(xié)議進行錄入,只有用戶登錄部分(vuser_init)不同,后續(xù)的界面操作記錄的腳本均相同。下面幾章會介紹如何針對EBS進行數(shù)據(jù)導入腳本的錄制和設置。Chapter

3 行結構數(shù)據(jù)的導入本章介紹用loadrunner導入貨位。3.1簡介一個完整的數(shù)據(jù)導入腳本,除了ERP的登陸腳本之外,還包含action和Vuser_end部分,其中action部分是數(shù)據(jù)導入的主體部分。本章節(jié),我們介紹針對一個簡單的行結構如何進行腳本錄制。后續(xù)章節(jié)中,我們將針對各種界面進行錄制的介紹。3.2錄制前的準備3.2.1分析界面貨位界面:可以看到,貨位界面是一個純粹的行結構界面。根據(jù)前面的介紹,我們知道,錄制貨位的腳本主要包含以下幾步:錄制Vuser_init部分:錄制從系統(tǒng)登陸到貨位界面的操作;錄制action部分:完整錄制“一個貨位錄入系統(tǒng)”的所有操作,這是用于錄制腳本循環(huán)的主體;錄制Vuser_end部分:錄制關閉界面、退出系統(tǒng)的操作。3.2.2哪些操作需要循環(huán)?我們可以看到,WMS的貨位錄入界面,是一個簡單行結構界面。那么需要循環(huán)的其實就是每一條貨位數(shù)據(jù)的錄入操作。請參考下面的循環(huán)圖:a.登陸b.到達錄制界面,F(xiàn)11+F4c.點擊“新建按鈕”d.a.登陸b.到達錄制界面,F(xiàn)11+F4c.點擊“新建按鈕”d.退出EBS3.3腳本的錄制我們知道腳本總共分為三部分:Vuser_init、action、Vuser_end。下面從這三個角度來考慮如何針對這三個部分進行錄入。3.3.1Vuser_init腳本錄入登陸ERP并進入目標界面的操作錄制詳見Chapter2。即上圖的a、b、c三個步驟。不要忘記對相應的地方需要做修改。記住要將登陸部分與重復操作部分區(qū)分開,這樣有利于腳本的跨環(huán)境重用。因為只有這兩個section耦合度低,才可以在新環(huán)境使用時,只錄入vuser_init的section,就可將腳本重用。3.3.2action腳本錄入登陸系統(tǒng)之后,進入到目標界面,進行數(shù)據(jù)錄入。即上圖的1~4的步驟。注意,在步驟c錄制結束時,就需要將錄制目標section更改為action,即在action中錄制數(shù)據(jù)錄入的操作:3.3.3vuser_end腳本錄入在完整錄入完一條貨位之后,即完整錄入1~4的所有步驟。將目標section更改為Vuser_end,對退出系統(tǒng)進行錄制。推出系統(tǒng)的錄制是為了關閉與服務器通信的session,及時釋放資源。3.4參數(shù)和循環(huán)的設置腳本目前錄制的僅僅是針對單條數(shù)據(jù)的錄入,需要通過參數(shù)化和循環(huán)的設置,來實現(xiàn)批量數(shù)據(jù)的錄入。下面,將分別詳細的介紹這兩點。3.4.1如何設置參數(shù)化選項?Keyparameter的設置:在錄制腳本之后,用參數(shù)代替要輸入的數(shù)據(jù),下面的locatorname是第一個參數(shù),是一個keyparameter,按照圖中進行設置。對于界面上可留空的字段,我們建議在loadrunner基礎數(shù)據(jù)模板中也要有該字段,如果是空值,留空即可。如果非空,可按基礎數(shù)據(jù)填充。注:此處選擇“序列”、“每次循環(huán)”為參數(shù),其余的參數(shù)如有興趣,可以去百度,由于兩種參數(shù)組合太多,這里不再一一贅述。非keyparameter的設置:其余參數(shù)按照下圖設置:最后將代碼中的參數(shù)用形參替代(選中原錄制時的變量,右鍵選擇替代為已有的形參)。3.4.2如何設置循環(huán)次數(shù)?設置循環(huán)次數(shù):3.5腳本的完成在設置完參數(shù)替代和迭代之后,一個行數(shù)據(jù)錄入的腳本就算完成了。下次如果要在正式環(huán)境中錄入數(shù)據(jù),只需要重新錄制Vuser_init部分的登陸操作即可。Chapter

4 頭行結構界面的分類本章介紹頭行結構的分類。4.1本章簡介通過第二章的介紹,我們可以知道,界面的數(shù)據(jù)結構對于我們設計Loadrunner的腳本錄制非常重要。我們可以發(fā)現(xiàn),對于行結構的數(shù)據(jù)來說,制作腳本是非常容易的,但是oracleEBS中除了行結構外還有大量的頭行結構界面,如何對頭行結構的界面進行數(shù)據(jù)導入呢?本章,我們會先對OracleEBS的頭行結構做一個簡單的分類,然后對于每個分類,我們詳細的探討,用何種方案順利完成數(shù)據(jù)的導入。4.2頭行結構的分類我們分析OracleEBS中的頭行結構,按照頭行的對應關系可分為兩種:頭行關系:一對一;頭行關系:一對多;4.2.1“一對一”的頭行結構舉例說明:頭行結構為“一對一”關系的界面:物料的定義其實就是一個典型的“一對一”的頭行結構。因為雖然一個物料有多個屬性,但是每個屬性的數(shù)據(jù)結構均是唯一的。這類數(shù)據(jù),其實本質上是一種行結構數(shù)據(jù);從數(shù)據(jù)表的角度,其實每條物料數(shù)據(jù),實際上就是一個行記錄。4.2.2“一對多”的頭行結構舉例說明:頭行結構為“一對多”關系的界面:WMS中將貨位分配給區(qū)域,是典型的“一對多”的頭行結構;銷售訂單、采購訂單等的頭行結構,也是屬于這種一對多的關系。這類最大的特征是,行的數(shù)據(jù)結構基本是相同的。下面分別是區(qū)域的頭行界面、銷售訂單的界面:在數(shù)據(jù)表中,區(qū)域數(shù)據(jù)是由兩個表存儲:區(qū)域數(shù)據(jù)頭表;區(qū)域數(shù)據(jù)行表,即區(qū)域所包含的貨位的數(shù)據(jù)表。4.3關系型數(shù)據(jù)庫數(shù)據(jù)的唯一結構(行結構)4.3.1由關系型數(shù)據(jù)庫發(fā)散開去事實上,我們在前臺看到的所有數(shù)據(jù)在后臺表中,均是以二維表的形式進行存儲,頭行的關聯(lián)關系是通過行表中的某些字段記錄頭信息,實現(xiàn)關聯(lián)。因此,所有數(shù)據(jù)均可以轉為二維的行結構數(shù)據(jù)。目前的數(shù)據(jù)庫模型還是關系型數(shù)據(jù)庫,在后臺就是一張張二維表,每列是一個字段,每行是一條記錄。所以可以大膽的推測,只要是關系型數(shù)據(jù)庫的,且loadrunner支持其應用所使用的協(xié)議,均可以轉化成行結構,進行數(shù)據(jù)的導入。4.3.2多層嵌套關系的變通實現(xiàn)到目前為止,我們知道,loadrunner可以通過設置參數(shù)替換和迭代的方式實現(xiàn)批量數(shù)據(jù)的導入,但是如果是頭行結構,邏輯上來看是一個嵌套循環(huán)。Loadrunner支持C語言編程,可實現(xiàn)多層循環(huán),但是增加了腳本制作的難度,我們可以逐層分解,用loadrunner的單層迭代即可實現(xiàn)導入。下面簡單說明頭行結構錄入的方式:我們可以看到在此頭行結構中,頭是區(qū)域,行是貨位。我們可以先批量錄入?yún)^(qū)域,后面再批量錄入貨位與區(qū)域的關聯(lián)(可以把區(qū)域看做是貨位數(shù)據(jù)表中的一個屬性)。Chapter

5 C語言控制RadioButtonGroup的輸入本章介紹本質為行結構的頭行結構的數(shù)據(jù)導入(或修改),重點介紹利用C語言控制結構。5.1本章簡介5.1.1簡介本章以主組織物料的數(shù)據(jù)為例,來介紹如何結合C語言編程,控制物料屬性的導入。本章的重點是說明通過C語言來控制特定屬性控件的導入(如:radiobuttongroup),為了突出重點,本案例操作是在系統(tǒng)已有的物料基礎上,對radiobutton屬性進行修改。5.2錄制前的準備5.2.1分析界面主組織物料界面:因為每個物料的屬性并不一樣,需要根據(jù)基礎數(shù)據(jù)來實時判斷選擇哪些屬性。比如:有下列三種物料,但是對于“轉換”的值卻不一樣。metiarialconvert100200138311R16400501210040004463注:1表示選擇標準; 2表示選擇特定物料; 3表示選擇二者。可以看出,對于這種情況,需要根據(jù)源數(shù)據(jù)模板實時判斷。正好loadrunner也提供基于C語言的編程,可以通過C語言解決此問題。5.3腳本的錄制5.3.1Vuser_init腳本錄制登陸ERP并進入目標界面的操作錄制詳見Chapter2。5.3.2action腳本錄入登陸系統(tǒng)之后,進入到目標界面,進行數(shù)據(jù)修改操作。查找出一個系統(tǒng)已有物料,錄制分別選擇“轉換”的三種值的腳本,然后再在后面利用C語言對其進行結構控制。下面是錄制的腳本:nca_button_set("MTL_SYSTEM_ITEMS_ALLOWED_UNITS_LOOKUP_CODE_MIR_STANDARD_0",1);//選擇“標準”nca_button_set("MTL_SYSTEM_ITEMS_ALLOWED_UNITS_LOOKUP_CODE_MIR_ITEM_SPECIFIC_0",1);//選擇“特定物料”nca_button_set("MTL_SYSTEM_ITEMS_ALLOWED_UNITS_LOOKUP_CODE_MIR_BOTH_0",1);//選擇“兩者”注意:在Vuser_initsection結束的時候,就需要將錄制目標section更改為action,即在action中錄制數(shù)據(jù)錄入的操作。5.3.3vuser_end腳本錄入在完整錄入完一條貨位之后,將目標section更改為Vuser_end,對退出系統(tǒng)進行錄制。推出系統(tǒng)的錄制是為了關閉與服務器通信的session,及時釋放資源。5.4參數(shù)和循環(huán)的設置5.4.1測試數(shù)據(jù)說明腳本目前錄制的僅僅是針對單條數(shù)據(jù)的修改,需要通過參數(shù)化和循環(huán)的設置,來實現(xiàn)批量數(shù)據(jù)的錄入。下表中就是進行測試的模擬數(shù)據(jù):metiarialconvert100200138311R16400501210040004463注:1表示選擇標準; 2表示選擇特定物料; 3表示選擇二者。5.4.2參數(shù)化的設定選擇loadrunner數(shù)據(jù)模板:設置選項:Material:Convert:5.4.3循環(huán)的設定因為只有三條數(shù)據(jù),我們只要設置action循環(huán)數(shù)量為3.5.5腳本的修改由于不同的物料,可能需要設置的“轉換”屬性不同,而RadioButtonGroup與LOV不同,不可以直接進行輸入,需要手工點選。因此我們采用C語言的控制結構,來實現(xiàn)不同物料的不同屬性設置,尤其是針對radiobutton類型的屬性控件。下面是修改后的actionsection的代碼:Action(){char*convert[100];//聲明字符串變量 strcpy(convert,lr_eval_string("{convert}"));//獲取loadrunner數(shù)據(jù)模板中本次迭代的參數(shù)值 nca_obj_type("MTL_SYSTEM_ITEMS_INVENTORY_ITEM_MIR_0",'z',0); nca_edit_set("MTL_SYSTEM_ITEMS_INVENTORY_ITEM_MIR_0","{material}"); nca_obj_type("MTL_SYSTEM_ITEMS_INVENTORY_ITEM_MIR_0",'z',MODIF_CONTROL); lr_think_time(9); //判斷勾選哪個屬性 if(!strcmp(convert,"1")){ nca_button_set("MTL_SYSTEM_ITEMS_ALLOWED_UNITS_LOOKUP_CODE_MIR_STANDARD_0",1);//選擇“標準” } if(!strcmp(convert,"2")){ nca_button_set("MTL_SYSTEM_ITEMS_ALLOWED_UNITS_LOOKUP_CODE_MIR_ITEM_SPECIFIC_0",1);//選擇“特定物料” } if(!strcmp(convert,"3")){ nca_button_set("MTL_SYSTEM_ITEMS_ALLOWED_UNITS_LOOKUP_CODE_MIR_BOTH_0",1);//選擇“二者” }nca_obj_type("MTL_SYSTEM_ITEMS_INVENTORY_ITEM_MIR_0",'S',MODIF_CONTROL); nca_obj_type("MTL_SYSTEM_ITEMS_INVENTORY_ITEM_MIR_0",'z',0); nca_obj_type("MTL_SYSTEM_ITEMS_INVENTORY_ITEM_MIR_0",'s',0); return0;}5.6腳本的完成通過上面的修改之后,我們的腳本基本可以完成了??梢钥吹?,針對無輸入數(shù)據(jù)的控件,完全可以通過C語言來“翻譯”,將數(shù)據(jù)模板里的代號,翻譯成相應的動作,實現(xiàn)對類似radiobuttongroup控件的數(shù)據(jù)錄入。更進一步,我們可以知道,loadrunner可是更靈活的對程序運行進行控制,至于C語言對loadrunner腳本的控制,大家可以繼續(xù)去探究。Chapter

6 頭行結構界面的數(shù)據(jù)導入本章介紹“一對多”頭行結構的數(shù)據(jù)導入。6.1本章簡介本章主要介紹針對R12中WMS中的區(qū)域數(shù)據(jù)的錄入,該界面有以下幾個難點:窗口名稱動態(tài)變化:loadrunner是靠窗體名稱來定位數(shù)據(jù)錄制窗體的,而在oracle的有些界面,窗口名稱是事實變化的,需要通過C語言來動態(tài)拼接生成窗口名稱,以解決此問題;JavaGrid控件腳本的錄入:針對JavaGrid控件的操作,在錄制成腳本后,再次回放時,總是報錯,該問題具有普遍性,在查看了外國友人的大量的文檔之后,使用一種hack的方式可以解決。下面,會依托WMS的區(qū)域數(shù)據(jù)的導入,來介紹如何解決上述兩個問題,同時介紹對頭行結構的界面進行基礎數(shù)據(jù)錄入的解決思路。6.2錄制前的準備6.2.1分析界面本章介紹針對頭行結構的界面的數(shù)據(jù)導入,我們以區(qū)域為例,來介紹數(shù)據(jù)的導入。可以看到,區(qū)域的界面其實是由兩個界面組成:區(qū)域頭界面、區(qū)域包含的貨位界面。按照對頭行結構的分類,我們可以看到實際上是由兩個行結構的界面組成。針對這類的界面,我們一般將錄制步驟進行分解,分解成兩步:頭數(shù)據(jù)導入:區(qū)域頭數(shù)據(jù)的導入;行數(shù)據(jù)導入:查找區(qū)域,并為每個區(qū)域導入相應的貨位。6.3區(qū)域數(shù)據(jù)的導入(頭)6.3.1腳本的錄制從界面可以看到,每一個區(qū)域的頭記錄其實就是一行,可以仿照貨位的錄入方式,來錄制腳本。這里不做贅述。6.4貨位數(shù)據(jù)的導入(行)6.4.1流程分析分析區(qū)域貨位界面,可以看出,其實最終的操作對象還是貨位,與其說為區(qū)域添加貨位,實際上還不如說是將貨位分配給區(qū)域,loadrunner的操作對象永遠要考慮最底層的數(shù)據(jù)項:actionVuser_endVuser_initc.退出EBSb.進入物料主組織界面a.登陸系統(tǒng)actionVuser_endVuser_initc.退出EBSb.進入物料主組織界面a.登陸系統(tǒng)因此,我們的數(shù)據(jù)整理模板應該如下:zonenamesubinvlocatorzone100219172050120501-000001zone100219172050120501-000002zone100219172050120501-000003zone100219172050120501-000004zone100219172050120501-000005zone100219172050120501-000006zone100219172050120501-000007zone100219172050120501-000008zone100219172050120501-000009每次查詢zonename,然后向其中添加貨位,這就是一次循環(huán),就完成了一次操作。下次循環(huán)就是重新查詢頭,在添加行。6.4.2腳本的錄入可以看到,將所有的輸入都轉化成行結構之后,其實腳本的錄入都很簡單。不過本界面有兩個問題,在本章開始就已經(jīng)提到,這兩個問題將在第7章統(tǒng)一介紹。Chapter

7 幾個疑難問題的解決本章介紹Loadrunner的幾個比較難的問題。7.1本章簡介7.1.1簡介在學習使用loadrunner的過程中,出現(xiàn)以下幾個問題:名稱動態(tài)變化的窗口的數(shù)據(jù)錄入;OracleGrid界面的數(shù)據(jù)錄入(包含nca_java_action無法解析問題的解決);跨環(huán)境的腳本錄入;窗口名稱動態(tài)變化7.2.1問題描述在第六章,為區(qū)域分配相應的貨位時,會出現(xiàn)如下界面:我們可以看到:在點擊了Addlocators之后,彈出窗的窗體名稱為”FindLocatorstoAddToZone(“+zonename+”)”,為不同的區(qū)域添加貨位,彈出的窗體名稱就會不同。當我們在URL中使用“?record=names”作為錄制參數(shù)的時候,就是根據(jù)窗體名稱來定位操作的,因此需要動態(tài)實現(xiàn)窗體名稱的拼接。7.2.2問題解決辦法下面是用C語言實現(xiàn)的窗體名稱拼接,并且將拼接后的字符串轉換成LPSTR格式,以供nca_set_window()函數(shù)調用。 char*head[100]; char*head2[100]; LPSTRwindowname; LPSTRwindowname2; //取參數(shù) strcpy(head,"FindLocatorstoAddToZone("); strcat(head,lr_eval_string("{zonename}")); strcat(head,")"); windowname=(LPCSTR)head; strcpy(head2,"AddLocators(V05)-"); strcat(head2,lr_eval_string("{zonename}"));windowname2=(LPCSTR)head2;上述代碼就是實現(xiàn)窗體重新拼接的代碼,大家有興趣可以嘗試一下。Grid界面的數(shù)據(jù)錄入7.3.1問題描述在Grid界面進行數(shù)據(jù)錄入的時候,會錄制產生下列的腳本:nca_java_action("LOCATORS_GRID_0","rowSelectionEvent","selectedRows==[2]-1[2]-1;");NCA_TIMER_SCHEDULE();NCA_TIMER_EXPIRED();在對包含有該段的腳本運行時,會報錯,無法運行通過。7.3.2問題解決辦法Step1:將“NCA_TIMER_SCHEDULE();”和“NCA_TIMER_EXPIRED();”刪掉,在nca_java_action語句前后添加如下語句:nca_step_begin();nca_java_action("LOCATORS_GRID_0","rowSelectionEvent","selectedRows==[2]-1[2]-1;");nca_step_end();Step2:需要將腳本錄制產生的文件夾中的default.cfg文件,找到下面的段,添加“NcaTimerWaitMode=0”[NCA_GENERAL]NcaTimerWaitMode=0將NcaTimerWaitMode的值設置為0,該參數(shù)的值是從0~37.4跨環(huán)境登陸腳本的錄入7.4.1問題描述由于我們都是在測試系統(tǒng)中錄入測試腳本,無法直接在目標環(huán)境使用,如何才能做到盡量少更改腳本,實現(xiàn)在多個環(huán)境的數(shù)據(jù)錄入呢?7.4.2問題解決辦法在到正式環(huán)境導入數(shù)據(jù)之前,需要將Vuser_initsection中的登陸信息重新錄入,用正式環(huán)境(目標環(huán)境)的登陸數(shù)據(jù)進行替代。由此可知,為了使得在測試環(huán)境中的數(shù)據(jù)導入腳本在換了一個環(huán)境之后能夠直接使用,或者盡量減少修改,那么需要將于環(huán)境相關的信息最好放在一個section中,即Vuser_init中去。因此,在錄入腳本的時候,要考慮好,將Vuser_init與action區(qū)分開來,在更換環(huán)境的時候,就只需要重新錄入Vuser_init部分的登陸信息至進入目標界面即可。Chapter

8 web界面的數(shù)據(jù)導入本章介紹web界面的數(shù)據(jù)導入。8.1本章簡介8.1.1簡介Web界面的數(shù)據(jù)導入比較簡單,本章以批量創(chuàng)建客戶為例,說明web界面如何進行大量數(shù)據(jù)的導入。8.2web界面數(shù)據(jù)導入8.2.1選擇協(xié)議在web界面導入數(shù)據(jù),我們也使用OracleApplication11i協(xié)議進行導入。8.2.2錄制參數(shù)的設置Applicationtype:InternetApplicationsProgramtorecord:MicrosoftInternetExplorerURLAddress::8005/OA_HTML/RF.jsp?function_id=28910&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=ZHS¶ms=RTtKCNJS0M3thl.S40dr8Q&oas=f_Rcd8tcRDxSYlMaD0Z32g..上述網(wǎng)址來源:Recordtoaction:Vuser_init.錄制選項:去掉recordsocketleveldata和enablegenerationofout-of-contextsteps8.2.3腳本錄制Vuser_init:從登陸到點擊創(chuàng)建客戶按鈕;Action:在創(chuàng)建客戶界面輸入客戶信息,并點擊保存、應用,到“標準客戶”頁面,點擊創(chuàng)建客戶按鈕;退出系統(tǒng),關閉頁面登陸系統(tǒng),進入目標頁面點擊創(chuàng)建退出系統(tǒng),關閉頁面登陸系統(tǒng),進入目標頁面點擊創(chuàng)建Vuser_end:退出EBS登陸。注意點:Web界面要以鼠標事件為主,這樣腳本才能準確的記錄控件事件;8.2.4腳本修改Vuser_initsection的腳本要做修改:原始腳本: web_browser("RF.jsp", DESCRIPTION, ACTION, "Navigate=:8005/OA_HTML/RF.jsp?function_id=28910&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=ZHS¶ms=RTtKCNJS0M3thl.S40dr8Q&oas=f_Rcd8tcRDxSYlMaD0Z32g..", LAST);修改后: web_browser(":8005/OA_HTML/RF.jsp?function_id=28910&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=ZHS¶ms=RTtKCNJS0M3thl.S40dr8Q&oas=f_Rcd8tcRDxSYlMaD0Z32g..", DESCRIPTION, ACTION, "Navigate=:8005/OA_HTML/RF.jsp?function_id=28910&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=ZHS¶ms=RTtKCNJS0M3thl.S40dr8Q&oas=f_Rcd8tcRDxSYlMaD0Z32g..", LAST);8.2.5設置參數(shù)替代和迭代次數(shù)與form數(shù)據(jù)導入一樣設置。不再贅述。Chapter

9 基礎數(shù)據(jù)解決方案9.1本章簡介本章將從loadrunner模板整理、基礎數(shù)據(jù)收集、基礎數(shù)據(jù)校驗等幾個方面來討論項目上線階段的基礎數(shù)據(jù)部分的解決方案。9.2三個主要問題9.2.1基礎數(shù)據(jù)整理部分的三個主要問題數(shù)據(jù)對于企業(yè)來說,重要性不言而喻。目前在項目實施的過程中,基礎數(shù)據(jù)基本存在以下幾個問題:基礎數(shù)據(jù)收集項不全:數(shù)據(jù)項收集是否完整取決于顧問素質是否過硬,做事是否細致,考慮是否全面;基礎數(shù)據(jù)收集模板轉化成數(shù)據(jù)導入模板工作量大:如針對大量數(shù)據(jù)制作dataload模板,頭行結構的數(shù)據(jù)尤甚;基礎數(shù)據(jù)校驗難度大:通過SQL直接從數(shù)據(jù)庫中將導入的基礎數(shù)據(jù)導出,與原基礎數(shù)據(jù)進行核對。如果使用的是dataload作為導入工具,無論是將導出的數(shù)據(jù)和原基礎數(shù)據(jù)核對,還是和dataload模板核對,由于格式的原因,均難以高效的完成數(shù)據(jù)校驗。9.3六步解決方案解決方案只有六步,做好這六步,就能保證基礎數(shù)據(jù)無憂。9.3.1解決上述問題的六個步驟在這段時間整理基礎數(shù)據(jù)的過程中,個人總結出一個基于loadrunner為導入工具的基礎數(shù)據(jù)解決方案,通過這個方案,可以有效的解決上述三個問題。主要工作流程如下:Step1:制作loadrunner數(shù)據(jù)導入模板;(頭行結構)Step2:錄制loadrunner腳本;(測試環(huán)境錄入)Step3:收集并整理基礎數(shù)據(jù)(由客戶參與);Step4:將基礎數(shù)據(jù)整理成loadrunner數(shù)據(jù)導入模板;(基于loadrunner模板)Strp5:導入基礎數(shù)據(jù);(跨環(huán)境,目標環(huán)境)Step6:數(shù)據(jù)校驗。(由于step1中已經(jīng)頭轉換成行了,所以很方便核對)9.3.2步驟一:制作loadrunner數(shù)據(jù)導入模板EBS按照界面形式分類可以分為web和Form,按照界面的數(shù)據(jù)結構角度可分為行結構和頭行結構。通過前面章節(jié)的介紹,我們知道,其實無論web還是form,真正數(shù)據(jù)模板的結構取決于界面是行結構還是頭行結構。因此,我們制作loadrunner數(shù)據(jù)導入模板時,主要考慮以下幾個問題:分析并確定界面的數(shù)據(jù)結構:行結構:簡單的行結構界面類似于貨位界面,每條記錄就只有一行;復雜的行結構界面類似于物料主組織界面。后者表面上是頭行結構,而后臺本質上確實一個行表。因此,要正確分析界面的數(shù)據(jù)結構,詳見chapter4.頭行結構:頭行結構類似于采購訂單界

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論