




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件測試技術(shù)實驗報告 河北工業(yè)大學(xué)計算機(jī)科學(xué)與軟件學(xué)院2017年9月軟件說明電話號碼問題某城市電話號碼由三部分組成。它們的名稱和內(nèi)容分別是: 地區(qū)碼:空白或三位數(shù)字; 前 綴:非0或1的三位數(shù)字; 后 綴:4位數(shù)字。流程圖源代碼import java.awt.*;import java.awt.event.*;public class PhoneNumber extends Frame implements ActionListener/* * */private static final long serialVersionUID = 1L;private final String st =
2、 Name,Local,Prefix,Suffix;static int c_person=0;TextField t_name,t_local,t_prefix,t_suffix;RecordDialog d_record;MessageDialog d_message;person a=new person100;public PhoneNumber()super(電話號碼);this.setSize(250,250);this.setLocation(300,240); Panel panel1 = new Panel(new GridLayout(4, 1);for (int i =
3、0; i st.length; i+) panel1.add(new Label(sti,0);Panel panel2 = new Panel(new GridLayout(4, 1);t_name =new TextField(,20);t_local =new TextField();t_prefix=new TextField(); t_suffix=new TextField();panel2.add(t_name);panel2.add(t_local);panel2.add(t_prefix);panel2.add(t_suffix);Panel panel3 = new Pan
4、el(new FlowLayout();Button b_save = new Button(Save); Button b_record= new Button(Record);panel3.add(b_save);panel3.add(b_record);this.setLayout(new BorderLayout();this.add(West, panel1);this.add(East, panel2);this.add(South, panel3);addWindowListener(new WindowCloser();b_save.addActionListener(this
5、);b_record.addActionListener(this);d_record=new RecordDialog(this);d_message=new MessageDialog(this);this.setVisible(true);private class RecordDialog extends Dialogprivate static final long serialVersionUID = 1L;Frame frame; /對話框所依賴的框架窗口TextArea t_show;RecordDialog(Frame frame)super(frame,記錄,true);t
6、his.frame=frame;this.setSize(300, 80);t_show=new TextArea(20,20);this.add(t_show);this.addWindowListener(new WindowCloser();public void show(String s) t_show.setText(s);this.setLocation(frame.getX()+100, frame.getY()+100);this.setVisible(true);private class MessageDialog extends Dialog/* * */private
7、 static final long serialVersionUID = 1L;Frame frame; /對話框所依賴的框架窗口Label label; /對話框中顯示信息MessageDialog(Frame frame)super(frame,消息,true);this.frame=frame;this.setSize(300, 80);label=new Label(,Label.CENTER);this.add(label);this.addWindowListener(new WindowCloser();public void show(String string) label
8、.setText(string);this.setLocation(frame.getX()+100, frame.getY()+100);this.setVisible(true);private class WindowCloser extends WindowAdapterpublic void windowClosing(WindowEvent we)Window label = we.getWindow();label.setVisible(false);private class personString name,local,prefix,suffix;person(String
9、 name,String local,String prefix,String suffix)=name;this.local=local;this.prefix=prefix;this.suffix=suffix;public String getname()return name;public String getlocal()return local;public String getprefix()return prefix;public String getsuffix()return suffix;public String toString()return th
10、is.getname()+t+this.getlocal()+t+this.getprefix()+t+this.getsuffix()+n;public boolean check(String local,String prefix,String suffix) if(local.equals()|(local.length()=3&local.matches(0-9+) &(prefix.length()=3&prefix.matches(2-9+) &(suffix.length()=4&suffix.matches(0-9+) return true; return false;pu
11、blic void actionPerformed(ActionEvent e) String label = e.getActionCommand();if(label=Save)String name=t_name.getText();String local=t_local.getText();String suffix=t_suffix.getText();String prefix=t_prefix.getText();if(check(local,prefix,suffix)ac_person=new person(name,local,prefix,suffix);c_perso
12、n+;elseString message=;if(!local.equals()&(local.length()!=3|!local.matches(0-9+)message+=local is error,;if(prefix.length()!=3|!prefix.matches(2-9+)message+=prefix is error,;if(suffix.length()!=4|!suffix.matches(0-9+)message+=suffix is error;message+=please input again.;d_message.show(message);t_na
13、me.setText();t_local.setText();t_prefix.setText();t_suffix.setText();if(label=Record)d_record.show(this.toshow();public String toshow()String s=nametlocaltprefixtsuffixn;for(int i=0;i “程序” “Mercury LoadRunner” “LoadRunner”。將打開“Mercury LoadRunner Launcher”窗口。在 Launcher 窗口中,單擊“負(fù)載測試”選項卡,單擊“創(chuàng)建/ 編輯腳本”,將打
14、開 VuGen 的開始頁 。2)創(chuàng)建一個空白 Web 腳本在 VuGen 開始頁的“腳本”選項卡中,單擊“新建 Vuser 腳本”,將打開“新建虛擬用戶”對話框,其中顯示用于新建單協(xié)議腳本的選項。選擇“Web (HTTP/HTML)”并單擊“確定”創(chuàng)建一個空白 Web 腳本。圖6-13)在 Mercury Tours 網(wǎng)站上開始錄制。單擊頁面頂部工具欄中的“開始錄制”按鈕,將打開“開始錄制”對話框。圖6-2在“URL”地址框中,鍵入 http:/localhost:1080/MercuryWebTours/。將打開一個新的 Web 瀏覽器,并顯示 Mercury Tours 站點。錄制工具條:
15、圖6-3登錄到 Mercury Tours 網(wǎng)站。成員姓名/密碼為:jojo/bean。輸入航班詳細(xì)信息。單擊“航班”。將打開“查找航班”頁: 出發(fā)城市:丹佛(默認(rèn)設(shè)置) 出發(fā)日期:保持默認(rèn)設(shè)置不變(當(dāng)前日期) 到達(dá)城市:洛杉磯 返回日期:保持默認(rèn)設(shè)置不變(第二天的日期)。 座位首選項:過道保持其余的默認(rèn)設(shè)置不變,然后單擊“繼續(xù)”。將打開“搜索結(jié)果”頁。單擊“繼續(xù)”接受默認(rèn)航班選擇。將打開“付費詳細(xì)信息”頁。輸入付費信息并預(yù)訂航班。在“信用卡”框中輸入 12345678,在“輸出日期”框中鍵入 06/06。單擊“繼續(xù)”。將打開“發(fā)票”頁,并顯示您的發(fā)票。注銷。單擊左窗格中的“注銷”。停止錄制。
16、在浮動工具欄上單擊“停止” 停止錄制過程。保存。選擇“文件” “保存”,或單擊“保存”按鈕。保存文件名為basic_tutorial。4)查看腳本錄制結(jié)束后,可以通過兩種方式來查看腳本:腳本視圖及樹視圖。腳本視圖腳本視圖是一種基于文本的視圖,列出了作為 API 函數(shù)的 Vuser 操作。要在腳本視圖中查看腳本,請單擊工具欄上的“View Script”按鈕或者選擇“View” “View Script”。在腳本視圖中, VuGen 將在編輯器中顯示帶有彩色編碼的函數(shù)及其變量值的腳本。樹視圖樹視圖是基于圖標(biāo)的視圖,列出了作為步驟的 Vuser 操作.要在樹視圖中查看腳本,請單擊工具欄上的“Vie
17、w Tree”按鈕或者選擇“View” “View Tree”。對于錄制期間所執(zhí)行的每一步驟, VuGen 都在測試樹中生成一個圖標(biāo)和一個標(biāo)題。在樹視圖中,將看到作腳本步驟的用戶操作。大多數(shù)步驟都附帶相應(yīng)的錄制快照。5)樹視圖中對錄制的步驟重命名,提高錄制腳本的可讀性: 選擇一個步驟 右鍵單擊步驟圖標(biāo) 在彈出菜單中選擇“屬性”菜單項 選擇“General”屬性頁 將缺省步驟名改為意義更明確的名稱2、播放腳本1)運行時設(shè)置,包括: 運行邏輯:重復(fù)次數(shù) 步:重復(fù)之間的等待時間 思考時間:步驟之間用戶停止以思考的時間。 日志:播放期間要收集的信息級別。按 F4 鍵或單擊工具欄中的“運行時設(shè)置”按鈕
18、。將打開“運行時設(shè)置”對話框。2)設(shè)置實時查看腳本的運行。依次選擇“工具” “常規(guī)選項”,然后選擇“顯示”選項卡。選擇“在回放期間顯示瀏覽器”和“自動排列窗口”選項。3)回放腳本確認(rèn)虛擬用戶執(zhí)行正確。4)查看結(jié)果查看日志。在菜單中依次選擇“視圖” “輸出窗口”。然后單擊“回放日志”選項卡。查看測試結(jié)果。依次選擇“視圖” “測試結(jié)果”。圖6-43、編輯腳本1)檢查點在進(jìn)行壓力測試時,為了檢查Web 服務(wù)器返回的網(wǎng)頁是否正確,VuGen 允許我們插入Text/Imag 檢查點,這些檢查點驗證網(wǎng)頁上是否存在指定的Text 或者Imag,還可以測試在比較大的壓力測試環(huán)境中,被測的網(wǎng)站功能是否保持正確。
19、以下是插入檢查點的步驟及檢查點在腳本中的函數(shù)表示。圖6-52)參數(shù)化-腳本參數(shù)化概述如果用戶在錄制腳本過程中,填寫提交了一些數(shù)據(jù),這些數(shù)據(jù)都被記錄到了腳本中。當(dāng)多個虛擬用戶運行腳本時,都會提交相同的數(shù)據(jù),這樣不符合實際的運行情況,而且有可能引起沖突。為了更加真實的模擬實際環(huán)境,需要各種各樣的輸入,參數(shù)化輸入是一種不錯的方法。用參數(shù)表示用戶的腳本有兩個優(yōu)點:v 可以使腳本的長度變短v 可以使用不同的數(shù)值來測試腳本參數(shù)化包含以下兩項任務(wù):v 在腳本中用參數(shù)取代常量值v 設(shè)置參數(shù)的屬性以及數(shù)據(jù)源圖6-63)集合點(Rendezvous)集合點是為了衡量在加重負(fù)載的情況下服務(wù)器的性能情況。在測試計劃中
20、,可能會要求系統(tǒng)能夠承受1000人同時提交數(shù)據(jù),在LoadRunner 中可以通過在提交數(shù)據(jù)操作前面加入集合點,這樣當(dāng)虛擬用戶運行到提交數(shù)據(jù)的集合點時,LoadRunner 就會檢查同時有多少用戶運行到集合點,如果不到1000 人,LoadRunner 就會命令已經(jīng)到集合點的用戶在此等待,當(dāng)在集合點等待的用戶達(dá)到1000 人時,LoadRunner 命令1000 人同時去提交數(shù)據(jù),從而達(dá)到測試計劃中的需求。注意:集合點經(jīng)常和事務(wù)結(jié)合起來使用。集合點只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合點。插入集合點方法:v 在需要插入集合點的前面,選擇菜單Ins
21、ert-Rendezvous。v 在彈出的Rendzvous對話框中,輸入要插入的集合點的名稱,點擊OK后,集合點插入完畢。集合點在腳本中的代碼:lr_rendezvous(“名稱”)圖6-7如果在腳本中設(shè)置了集合點,還需要在Controller 中設(shè)置集合點策略,從菜單中調(diào)出集合點策略設(shè)置窗口,根據(jù)需求設(shè)置集合點策略。圖6-8(4)關(guān)聯(lián)(correlation)關(guān)聯(lián)(correlation)就是把腳本中某些寫死的數(shù)據(jù),轉(zhuǎn)變成是取自服務(wù)器所送的、動態(tài)的、每次都不一樣的數(shù)據(jù)。如何找出要關(guān)聯(lián)數(shù)據(jù)?簡單的說,每一次執(zhí)行時都會變動的值,就有可能需要做關(guān)聯(lián)。VuGen提供二種方式幫助您找出需要做關(guān)聯(lián)的值
22、:v 自動關(guān)聯(lián) v 手動關(guān)聯(lián) (5)事務(wù)(Transaction)當(dāng)錄制完一個基本的用戶腳本后,在正式使用前我們還需要完善測試腳本,增強(qiáng)腳本的靈活性。例如,可以在腳本中插入名為內(nèi)容檢查的步驟,以驗證某些特定內(nèi)容是否顯示在返回頁上??梢孕薷哪_本來模擬多用戶行為,也可以用事務(wù)來度量特定的業(yè)務(wù)流程。事務(wù)(Transaction):為了衡量服務(wù)器的性能,我們需要定義事務(wù)。比如:我們在腳本中有一個數(shù)據(jù)查詢操作,為了衡量服務(wù)器執(zhí)行查詢操作的性能,我們把這個操作定義為一個事務(wù),這樣在運行測試腳本時,LoadRunner 運行到該事務(wù)的開始點時,就會開始計時,直到運行到該事務(wù)的結(jié)束點,計時結(jié)束。這個事務(wù)的運行
23、時間會在結(jié)果中顯示。 插入事務(wù)操作可以在錄制過程中進(jìn)行,也可以在錄制結(jié)束后進(jìn)行。LoadRunner 運行在腳本中插入不限數(shù)量的事務(wù)。圖6-94、創(chuàng)建場景在“Mercury LoadRunner Launcher”窗口中,單擊“運行負(fù)載測試”,打開 LoadRunner Controller。圖6-10Loadrunner的場景能夠描述在測試活動中發(fā)生的各種事件。一個場景包括一個運行虛擬用戶活動的Load Generator 機(jī)器列表,一個測試腳本的列表以及大量的虛擬用戶和虛擬用戶組。1)在新建場景的窗口,選擇一種場景類型:手動場景。可以控制正在運行的 Vuser 數(shù)量及其運行的時間,還可以測
24、試應(yīng)用程序可以同時運行的 Vuser 數(shù)??梢允褂冒俜直饶J礁鶕?jù)業(yè)務(wù)分析員指定的百分比在腳本間分配全部的 Vuser。面向目標(biāo)的場景。用于確定系統(tǒng)是否可以達(dá)到特定的目標(biāo)。由測試員確定基于的目標(biāo),例如,指定的事務(wù)響應(yīng)時間或每秒點擊次數(shù)/ 事務(wù)數(shù),并且 LoadRunner 將根據(jù)這些目標(biāo)自動創(chuàng)建場景。2)向負(fù)載測試中添加腳本。單擊“瀏覽”按鈕,找到在步驟1中保存的腳本basic_script。默認(rèn)保存在 Tutorial 目錄中。“可用腳本”部分和“場景中的腳本”部分中將顯示該腳本。圖6-113)Controller設(shè)計窗口概述。Controller 窗口的“設(shè)計”選項卡包含兩個主要部分:場景計劃和場景組。場景計劃:在“場景計劃”部分中,可以設(shè)置負(fù)載行為以精確地描繪用戶行為。還可以確定將負(fù)載應(yīng)用于應(yīng)用程序的速率、負(fù)載測試持續(xù)時間以及如何停止負(fù)載。場景組:可以在“場景組”部分中配置 Vuser 組。在此部分中,可以創(chuàng)建代表系統(tǒng)典型用戶的各種組。您可以定義這些典型用戶運行的操作、運行的 Vuser數(shù)以及 Vuser 運行時所用的計算機(jī)。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼河油田施工合同
- 短期翻譯服務(wù)合同
- 有關(guān)私了賠償協(xié)議書
- 餐飲業(yè)食品安全及服務(wù)質(zhì)量保障合同
- 幼兒園接送免責(zé)協(xié)議書
- 采購預(yù)付款合同
- 高端機(jī)械裝備研發(fā)項目合作框架協(xié)議
- 中央空調(diào)安裝施工合同
- 企業(yè)采購智能化設(shè)備合同
- 合格供應(yīng)商框架協(xié)議
- 危重患者搶救制度課件
- 健康管理與個人健康2024年的健康護(hù)理方法
- 安徽省合肥市廬陽區(qū)評價2023-2024學(xué)年六年級下學(xué)期5月模擬預(yù)測數(shù)學(xué)試題+
- 釘釘辦公軟件培訓(xùn)課件
- JBT 1472-2023 泵用機(jī)械密封 (正式版)
- 價格法價格違法行為和明碼標(biāo)價法律法規(guī)價格欺詐知識
- 2016-2023年山東力明科技職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 2022版《義務(wù)教育教學(xué)新課程標(biāo)準(zhǔn)》解讀課件
- 江蘇省2023年普通高校專轉(zhuǎn)本選拔考試計算機(jī)專業(yè)大類專業(yè)技能試卷及答案解析
- 設(shè)備采購 投標(biāo)方案(技術(shù)方案)
- 越野車改裝方案
評論
0/150
提交評論