




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档软件测试技术实验报告 河北工业大学计算机科学与软件学院2017年9月软件说明电话号码问题某城市电话号码由三部分组成。它们的名称和内容分别是: 地区码:空白或三位数字; 前 缀:非0或1的三位数字; 后 缀:4位数字。流程图源代码import java.awt.*;import java.awt.event.*;public class PhoneNumber extends Frame implements ActionListener/* * */private static final long serialVersionUID = 1L;private final String st = 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 = 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 Panel(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);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);this.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 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.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 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 this.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;public 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_person+;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_name.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 窗口中,单击“负载测试”选项卡,单击“创建/ 编辑脚本”,将打开 VuGen 的开始页 。2)创建一个空白 Web 脚本在 VuGen 开始页的“脚本”选项卡中,单击“新建 Vuser 脚本”,将打开“新建虚拟用户”对话框,其中显示用于新建单协议脚本的选项。选择“Web (HTTP/HTML)”并单击“确定”创建一个空白 Web 脚本。图6-13)在 Mercury Tours 网站上开始录制。单击页面顶部工具栏中的“开始录制”按钮,将打开“开始录制”对话框。图6-2在“URL”地址框中,键入 http:/localhost:1080/MercuryWebTours/。将打开一个新的 Web 浏览器,并显示 Mercury Tours 站点。录制工具条:图6-3登录到 Mercury Tours 网站。成员姓名/密码为:jojo/bean。输入航班详细信息。单击“航班”。将打开“查找航班”页: 出发城市:丹佛(默认设置) 出发日期:保持默认设置不变(当前日期) 到达城市:洛杉矶 返回日期:保持默认设置不变(第二天的日期)。 座位首选项:过道保持其余的默认设置不变,然后单击“继续”。将打开“搜索结果”页。单击“继续”接受默认航班选择。将打开“付费详细信息”页。输入付费信息并预订航班。在“信用卡”框中输入 12345678,在“输出日期”框中键入 06/06。单击“继续”。将打开“发票”页,并显示您的发票。注销。单击左窗格中的“注销”。停止录制。在浮动工具栏上单击“停止” 停止录制过程。保存。选择“文件” “保存”,或单击“保存”按钮。保存文件名为basic_tutorial。4)查看脚本录制结束后,可以通过两种方式来查看脚本:脚本视图及树视图。脚本视图脚本视图是一种基于文本的视图,列出了作为 API 函数的 Vuser 操作。要在脚本视图中查看脚本,请单击工具栏上的“View Script”按钮或者选择“View” “View Script”。在脚本视图中, VuGen 将在编辑器中显示带有彩色编码的函数及其变量值的脚本。树视图树视图是基于图标的视图,列出了作为步骤的 Vuser 操作.要在树视图中查看脚本,请单击工具栏上的“View Tree”按钮或者选择“View” “View Tree”。对于录制期间所执行的每一步骤, VuGen 都在测试树中生成一个图标和一个标题。在树视图中,将看到作脚本步骤的用户操作。大多数步骤都附带相应的录制快照。5)树视图中对录制的步骤重命名,提高录制脚本的可读性: 选择一个步骤 右键单击步骤图标 在弹出菜单中选择“属性”菜单项 选择“General”属性页 将缺省步骤名改为意义更明确的名称2、播放脚本1)运行时设置,包括: 运行逻辑:重复次数 步:重复之间的等待时间 思考时间:步骤之间用户停止以思考的时间。 日志:播放期间要收集的信息级别。按 F4 键或单击工具栏中的“运行时设置”按钮 。将打开“运行时设置”对话框。2)设置实时查看脚本的运行。依次选择“工具” “常规选项”,然后选择“显示”选项卡。选择“在回放期间显示浏览器”和“自动排列窗口”选项。3)回放脚本确认虚拟用户执行正确。4)查看结果查看日志。在菜单中依次选择“视图” “输出窗口”。然后单击“回放日志”选项卡。查看测试结果。依次选择“视图” “测试结果”。图6-43、编辑脚本1)检查点在进行压力测试时,为了检查Web 服务器返回的网页是否正确,VuGen 允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text 或者Imag,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。以下是插入检查点的步骤及检查点在脚本中的函数表示。图6-52)参数化-脚本参数化概述如果用户在录制脚本过程中,填写提交了一些数据,这些数据都被记录到了脚本中。当多个虚拟用户运行脚本时,都会提交相同的数据,这样不符合实际的运行情况,而且有可能引起冲突。为了更加真实的模拟实际环境,需要各种各样的输入,参数化输入是一种不错的方法。用参数表示用户的脚本有两个优点:v 可以使脚本的长度变短v 可以使用不同的数值来测试脚本参数化包含以下两项任务:v 在脚本中用参数取代常量值v 设置参数的属性以及数据源图6-63)集合点(Rendezvous)集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。注意:集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。插入集合点方法:v 在需要插入集合点的前面,选择菜单Insert-Rendezvous。v 在弹出的Rendzvous对话框中,输入要插入的集合点的名称,点击OK后,集合点插入完毕。集合点在脚本中的代码:lr_rendezvous(“名称”)图6-7如果在脚本中设置了集合点,还需要在Controller 中设置集合点策略,从菜单中调出集合点策略设置窗口,根据需求设置集合点策略。图6-8(4)关联(correlation)关联(correlation)就是把脚本中某些写死的数据,转变成是取自服务器所送的、动态的、每次都不一样的数据。如何找出要关联数据?简单的说,每一次执行时都会变动的值,就有可能需要做关联。VuGen提供二种方式帮助您找出需要做关联的值:v 自动关联 v 手动关联 (5)事务(Transaction)当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的灵活性。例如,可以在脚本中插入名为内容检查的步骤,以验证某些特定内容是否显示在返回页上。可以修改脚本来模拟多用户行为,也可以用事务来度量特定的业务流程。事务(Transaction):为了衡量服务器的性能,我们需要定义事务。比如:我们在脚本中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个事务,这样在运行测试脚本时,LoadRunner 运行到该事务的开始点时,就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间会在结果中显示。 插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在脚本中插入不限数量的事务。图6-94、创建场景在“Mercury LoadRunner Launcher”窗口中,单击“运行负载测试”,打开 LoadRunner Controller。图6-10Loadrunner的场景能够描述在测试活动中发生的各种事件。一个场景包括一个运行虚拟用户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组。1)在新建场景的窗口,选择一种场景类型:手动场景。可以控制正在运行的 Vuser 数量及其运行的时间,还可以测试应用程序可以同时运行的 Vuser 数。可以使用百分比模式根据业务分析员指定的百分比在脚本间分配全部的 Vuser。面向目标的场景。用于确定系统是否可以达到特定的目标。由测试员确定基于的目标,例如,指定的事务响应时间或每秒点击次数/ 事务数,并且 LoadRunner 将根据这些目标自动创建场景。2)向负载测试中添加脚本。单击“浏览”按钮,找到在步骤1中保存的脚本basic_script。默认保存在 Tutorial 目录中。“可用脚本”部分和“场景中的脚本”部分中将显示该脚本。图6-113)Controller设计窗口概述。Controller 窗口的“设计”选项卡包含两个主要部分:场景计划和场景组。场景计划:在“场景计划”部分中,可以设置负载行为以精确地描绘用户行为。还可以确定将负载应用于应用程序的速率、负载测试持续时间以及如何停止负载。场景组:可以在“场景组”部分中配置 Vuser 组。在此部分中,可以创建代表系统典型用户的各种组。您可以定义这些典型用户运行的操作、运行的 Vuser数以及 Vuser 运行时所用的计算机。图6-124)Controller运行窗口概述Controller 窗口中的“运行”选项卡是用来管理和监
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗器械管理师资格考试试卷及答案
- 2025年外科医生资格考试试题及答案
- Scyphostatin-生命科学试剂-MCE
- Agmatine-sulfate-Standard-生命科学试剂-MCE
- 2025年人民币汇率波动影响分析考试试卷及答案
- 2025年农作物育种学期末考试试题及答案
- 2025年社会心理学专业知识考试题及答案
- 2025年基础工程与施工管理考试试题及答案
- 2025年教师资格考试重点复习试卷及答案
- 2025年酒店管理专业实务考试题及答案
- 2025年广东省万阅大湾区百校联盟中考二模语文试题(含答案)
- 护士理论考试试题及答案
- 2024-2025学年天津市八年级下期末数学模拟试卷(附答案解析)
- 2025年继续教育公需科目网络考试试题及答案
- 福建省厦门市2023-2024学年高一下学期期末质量检测历史试题(解析版)
- 油漆工包工合同协议书
- 2025高考终极押题范文6篇与题目
- 工程项目经理竞聘演讲稿
- 基于“学-教-评”一体化理念下的高中古诗词教学策略研究
- 天津水务集团有限公司招聘考试真题2024
- 统编版(2024)七年级下册历史期末专题复习课件40张
评论
0/150
提交评论