qtp测试飞机订票系统测试脚本录制、回放、调试(实验1)

合集下载

QTP自带的飞机订票功能考试报告

QTP自带的飞机订票功能考试报告
If outputvalue<>istatus Then
Reporter.ReportEvent micFail,"登录测试","实际的:"+outputvalue+"预期的:"+istatus+"不相同!" '报错
ﻩelse
ﻩReporter.ReportEvent micPass,"登录测试","实际的:"+outputvalue+"预期的:"+istatus+"相同!" '报对
图2-01
第二步:在QTP主界面中单击“Record”,在登陆界面的文本框中,输入正确的用户名和密码,单击“OK”按钮,进入飞机订票系统界面。在QTP主界面,单击“Stop”按钮,结束当前的录制,如图2-02;
图2-02
录制的脚本代码为:
'写一个循环,读取datatable的每一行测试用例
Dim i '定义变量i
指导教师:*****
测试目标
了解熟悉QTP自动化测试工具及其基本功能,掌握QTP自动化测试的基本测试步骤,能运用QTP测试工具对系统进行简单的自动化测试。在QTP测试中能写出基本的脚本语言,以及能够对脚本语句进行编写,能够测试登录功能、订票功能。其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试。
Dim outputvalue '定义变量实际得到的输出
Dim istatus '定义变量希望得到的输出
For i=1 to datatable.GetSheet("Action1").getrowcount '从第一行,读到datatable的最后一行

飞机订票系统测试报告

飞机订票系统测试报告

飞机订票系统功能测试报告课题名称飞机订票系统功能测试报告系/专业班级学号学生姓名指导教师:第一章QTP自动化测试介绍1.1概述QTP是HP公司开发的功能自动化测试工具。

相对于手工测试,QTP自动化测试比人工测试快得多,同时可以避免人工测试的错误,因此,随着测试技术的发展,自动化测试逐渐成为测试的一个重要测试工具。

1.2测试介绍本次课程的内容就是学习QTP自动化测试工具,以飞机订票系统为实例,通过飞机订票的过程,包括登陆、订票、删除等一系列功能操作,运用QTP自动化测试工具来进行具体测试操作,从而来了解并学习QTP自动化测试工具。

在使用QTP进行自动化测试时,所包含的几个步骤:1、准备录制;2、创建对象库;3、创建函数和函数库;4、录制执行;5、强化测试脚本;6、调试脚本;7、在回归测试中运行测试;8、分析结果,报告问题。

按照以上步骤,对飞机订票系统的各个功能进行自动测试,完成系统的测试工作。

1.3 测试内容对于飞机订票系统的自动化测试,首先要熟悉了解一下这个飞机订票系统的基本运行流程,从登陆到订票到查询、删除等一系列基本功能的操作,在对系统流程了解后,再开始对其中的一些功能进行测试工作。

在对这个飞机订票系统,此次测试内容有登陆功能,其中登陆功能测试包含一个用户正确登陆、设置参数可以进行多个用户(正确和错误的)的登陆以及运用手工登陆的方法进行测试,在订票功能中,有对订票是否成功的测试、设置检查点以及循环所有航班的测试,另外还有传真订单的录制,其中有录制签名和录制模式,除此之外还有与数据库的链接等一些简单的功能测试。

1.4测试目标本次课程主要目标就是了解熟悉并学习简单的自动化测试工具,能运用基本的测试工具,对系统进行简单的自动化测试。

对于QTP自动化测试的测试目标:熟悉QTP自动化测试工具及其基本功能掌握QTP自动化测试的基本测试步骤运用QTP测试工具对系统进行简单的自动化测试在QTP测试中,能写出基本的脚本语言对于飞机订票系统的测试目标:测试登陆功能,包括单个用户能否正确登陆、多个用户的正确和错误是否能正确登陆,以及手工能否登陆的测试 订票功能的测试,其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试传真和删除订单的测试,在传真测试中,录制签名后,进行播放时签名是能否播放出来,对于订单的删除,进行脚本语句的编写,能否成功完成测试第二章测试计划及测试环境搭建2.1测试原理分析QTP主要采用的是GUI模拟人的操作。

QTP安装及Flight飞机订票系统录制演示

QTP安装及Flight飞机订票系统录制演示

QTP安装及Flight飞机订票系统录制演示(一)QTP安装1、安装包目录:\\QTP9.5\setup.exe;2、将QTP9.5安装包复制到本地目录下,打开并运行..\QTP9.5\QTP95-T6510-15059\setup.exe文件,按照安装向导进行安装即可;注意在安装过程中需选择图1中安装类型为“自定义”进入下一步选中Java Add-in(将安装在本地硬盘驱动器上)如图2:图1图23、将要测试的应用程序pbsrun文件夹拷贝到C:\ 根目录下;4、编辑C:\ pbsrun\PowerBranchTeller31.bat文件;添加“set qtp=C:\Progra~1\HP\QuickT~1\bin\java_shared\bin”添加连接符“+”将-Djava.library.path=%DLLDIR%移到图3中所指的位置,并在%DLLDIR%前添加“%qtp%”用“;”隔开如图3:图3注:1、在启动QTP9.5安装程序时可能会碰到图4的情况图4我们需把注册表中的[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\PendingFileRenameOperations]删除掉;2、在进行QTP9.5安装过程中会出现如图5,我们点击“取消”键即可完成QTP9.5的安装了。

图53、安装完成后,我们启动QTP应用程序,弹出License Warning 的警告页面,点击“Install License”按钮,如图6;在进入的界面中选择License Type为“Concurrent licens”点击“下一步”,如图7;界面中输入License服务器的地址:xxxx即可完成与License服务器的连接,如图8。

图6图7图8(二)QTP进行测试流程(以QuickTest Professional中自带的Flight订票系统为例)1、准备录制在录制测试前,确认应用程序和QTP已按测试要求设置。

QTP实验报告【范本模板】

QTP实验报告【范本模板】

QTP实验报告专业:班级:指导教师:姓名:学号:一、测试目标本次试验所用的软件为QTP所自带的飞机订票系统。

目的在于了解熟悉QTP自动化测试工具及其基本功能,掌握QTP自动化测试的基本测试步骤,能运用QTP测试工具对系统进行简单的自动化测试。

在QTP 测试中能写出基本的脚本语言,以及能够对脚本语句进行编写.本次所测试的内容包括QTP基本的录制与回放、增加点击help步骤、添加检查点以及参数化操作。

二、测试原理分析QTP主要采用的是GUI模拟人的操作。

它在模拟人的操作时会通过录制记录操作的对象及所做的操作和顺序,然后在回放时按照记录顺序操作这些对象。

而在这个模拟的过程中最重要的莫过于界面对象控件的识别。

三、基本操作3.1 基本的启动操作第一步:点击QTP的执行文件;第二步:第一步完成后会出现下图的对话框,然后选择ActiveX,点击OK,如图1;图1第四步:出现如一下图所示的对话框,然后点选Blank Test,如图2;3.2 录制与回放3.2.1 录制以Windows 的订票系统为例,录制登陆退出操作,操作前先选择Tools-Options-RestoreLayout ,Automation —Record and Run Settings,开始录制(注:这里用户名我们统一用mercury )。

3。

2.2回放录制完成后为了验证录制是否正确,要进行脚本的回放。

在回放时会出现如下图所示的操作,此时点选第二个选项,如图3。

3。

2。

3查看报告回放结束后我们可以在Automation-Results 查看结果报告,可以在图2图3Tools-Options —Run 标签中是否勾选view results when run session ends 来设定results 在什么时候显示。

报告结果如图4;3。

3增加点击help 步骤选中Login 点右键,Insert Step —Step Generator 。

QTP测试实验报告-飞机票订票系统(word文档良心出品)

QTP测试实验报告-飞机票订票系统(word文档良心出品)

QTP 自动化功能测试实践一、实验目的1、熟悉QTP自动化功能测试流程2、能够利用QTP进行B/S或者C/S架构程序的自动化功能测试二、实验内容功能测试是针对应用系统进行测试,是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用。

本项目主要使用QuickTest 对其自带的MercuryTours 网站/ 飞机票订票系统进行功能测试,要求录制预订机票的完整过程,然后执行测试脚本并分析结果。

三、实验要求1 、独立完成;2、提交测试脚本3、提交测试用例说明书及缺陷报告。

四实验内容1 脚本的录制与回放测试及检查点的设置验证脚本代码:Dialog("Login").WinEdit("Agent Name:").Check CheckPoint("Agent Name:") ' 验证乘客名字文本框中的值标准检查点Dialog("Login").WinEdit("Agent Name:").Set "123456" '输入用户名Dialog("Login").WinEdit("Password:").Set "mercury" ' 输入密码Dialog("Login").WinButton("OK").Click ' 单击OK 按钮登陆Window("Flight Reservation").Static("Static").Check CheckPoint("Static") ' 检查页面中的图片元素是否加载Window("Flight Reservation").ActiveX("MaskEdBox").Type "011218"Window("Flight Reservation").WinComboBox("Fly From:").Select "London" Window("Flight Reservation").WinComboBox("Fly To:").Select "Paris"Window("Flight Reservation").WinButton("FLIGHT").ClickWindow("Flight Reservation").Dialog("Flights Table").WinList("From").Select "12534 LON 08:00 AM PAR 10:00 AM AF $165.50" Window("FlightReservation").Dialog("Flights Table").WinButton("OK").Click Window("Flight Reservation").WinEdit("Name:").Set "gcc"Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1Win dow("Flight Reservatio n").Wi nEdit("Tickets:").Set "5"Win dow("Flight Reservatio n").Wi nRadioButto n( "Busi ness").Set Window("Flight Reservation").WinButton("Insert Order").Click Win dow("Flight Reservatio n").CIose ' 关闭订票系统 结果- 曲 Run^TinriR D?it3i TableS-- Cbackpoint 1 (Row 1}IS 讨 Actonl Summary 申#自login 白 * ■ AgentNdme:…Checkpoint 'Aceinft I ! [ ■ ■- H K Agent N^mec-SetText |KPassw&rdLSetTe )rt| L M oKcikkilFlight ReservationI5ic Agent N@-me:.Set~ert pir Pa s £ wo rdi . ext二I OKTlick3- Fl gbt Resen r ation2参数化脚本测试本案例中将Flight From 的选项内容设置为参数化类型 脚本代码 With Dialog("Logi n").Win Edit("Age nt Name:").Set "aaaa" .Win Edit("Password:").Set "mercury" .Win Butt on ("OK").CIick曰lest Cha^kp-Qint Sunnmary勃 Run-Time Data latleB Ch&ckpoirrt Iteraticn 11 (Row1)-■』伦 Actiorl SLmiria^y自LogirElDmailsEnd WithWith Win dow("Flight Reservatio n") .ActiveX("MaskEdBox").Type "011218".Win ComboBox("Fly From:").Select DataTable("from", dtGlobalSheet) 参数化 ‘.Win ComboBox("Fly To:").Select "Syd ney" .Win Butto n( "FLIGHT").CIick With .Dialog("Flights Table").Win List("From").Select "12463 LON 03:07 PM SYD 04:48 PM NW $160.40".Win Butto n( "OK").Click End With.Win Edit("Name:").Set "gcc" .Win Edit("Tickets:").Set "3".Win RadioButt on ("Busi ness").Set .Win Butto n("In sert Order").Click .Close End Withwait(1)必须有wait 函数回调给第二次循环预留准备时间 结果脚本录制关键字视图♦namD€DErGH IJLMN1Lo-ijcm 2 iFarra3脚本回放结果4t ft JVWH前¥前"^LHTIW"磚b/l 师工kH inse^ U"2ET " aJtisr"""I Fii^l Fesw-slc-■Q IN■Z™E Fi 丁1 MTrfc*wafu.WaR ( 1 «btfg ihwst華.HI TKtes.自T I E 'ges'lfi 'aTfii IN NP ”" ■adtbac.*T f 1l-t *T»<jfft■严.Stf5KIII >4H '■TWOL W 曾jibtiiiMTt 仲練 fDaAaToDh5KEhi. ' BM > ' E 叶Civile 1 1 vS. tXhOctT 砂'0112145心jiBeF'iW 1Hhpn- Miishiina- ihf Frer-.'K対R1IW "却 1 即-h* II ・丹 T Q * 111 *缺 TL1GHT araStfMTCkfc :)KJ 呵严itiM本案例中对Flight 系统的用户登陆界面进行参数化的黑盒测试 用到6组测试数据测试脚本Dialog("Logi n").Wi nEdit("Age nt Name:").Set DataTable("username", dtGlobalSheet)'输入用户名Dialog("Logi n").Wi nEdit("Password:").Set DataTable("password", dtGlobalSheet)'输入密码Dialog("Logi n").Wi nButto n("OK").CIick '点击登陆 If Dialog("Login").Dialog("Flight Reservations").Exist ThenDialog("Logi n").Dialog("Flight Reservatio ns").Wi nButto n(" 确定").Click ' 弹出 提示框点击确认按钮 Dialog("Log in ").Close else '登陆成功进入订票Win dow("Flight Reservatio n").ActiveX("MaskEdBox").Type "011218"Win dow("Flight Reservatio n").Wi nComboBox("Fly From:").Select "Lo ndon" Win dow("Flight Reservatio n").Wi nComboBox("Fly To:").Select "Paris" Win dow("Flight Reservatio n").Wi nButto n("FLIGHT").CIickWin dow("Flight Reservatio n").Dialog("Flights Table").Wi nList("From").Select耳專 Test Parameter Summary "… 曲 Rur-Timc Ddt? Tablu□ |j^ Porometer Iteration 1 (RevH 电 Actionl SjirnnfiiyEl-- X 由)Parimrter Iteration 2 fRov 刁 X 唱Action] S immsiry(41 Ji login0 X Hight ReservationMa^ktdSox fypt-回fl F ¥ From:占elect 密 Fly TcjLSd&a■ FLIGHT, Click Para meter Results Summary宦 X 曰 Fights T ・bb5— J*◎ P.un Errorffl • Flight ReservationTest Parameter Results name. Resl I Time 厶>n 匕中国転薜时旧Run HtartQd:2D1SHP^135340Ftun ended: 201S/1/7-"12274 LON 01:27 PM PAR 03:07 PM NW $155.00"Win dow("Flight Reservatio n").Dialog("Flights Table").Wi nButton ("OK").CIickWin dow("Flight Reservatio n").Wi nEdit("Name:").Set "gcc"Win dow("Flight Reservatio n").Wi nEdit("Tickets:").Type "5"Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1Win dow("Flight Reservatio n").Wi nEdit("Tickets:").Set "5"Win dow("Flight Reservatio n").Wi nRadioButto n( "Busi ness").SetWindow("Flight Reservation").WinButton("Insert Order").ClickWin dow("Flight Reservatio n").CIose ' 退出订票界面End Ifwait(3)脚本录制结果|曾小川L OTH Cwortrfo-Qcfc EizkEne "OK-□Lit”v Q ridlt匚he亡庸wheEher the ' F?gnt fesertiBt =TH ' base sasts . H 931口*□色ttie bLtonChiE CleaE IhrE 占兰四日龙*二「帕用Re时皿如Cbw Cw lhr 'F^h ' wrdsw 誉Funriiinr Gal Wfit 3 }務匕*耳岂护FI M14 4 it Hi ■, d q BMpRl:肌,L-atJi T施I E脚本回放结果鼻Test ^arameterLog nTest S j—匪Run-Time Data Table 由• “ Pa meterLog inTect tte 3 Po ro mctortoginTcrt Ito 3 D| ParometcrtoginTest Ite 自• ParameterLoginTest Ite 用• ParameterLoginTest Ite r« • ® Pa ra meterlog inTe^t IteTest ParameterLoflinTestResults name: R G$5Time Zone: 4=国听;隹对司Run started: 2018/1/7 ・ 14:2059 Run ended 2018/1/7-14 2151。

QTP实验指导1

QTP实验指导1

天津工业大学实验指导书时间:年月日课程名称:软件测试技术实验名称:熟悉自动化测试工具QTP的使用班级:姓名:学号:指导教师评定:签名:1实验目的(1)理解和掌握自动化测试的基本原理和方法。

(2)掌握QTP录制及回放测试脚本的方法。

2实验要求(1)使用QTP对被测程序进行脚本录制和回放,掌握录制及回放的操作步骤。

(2)掌握对测试脚本中相关测试数据的参数化方法。

3实验内容本次实验主要包括两个内容:(1)录制机票预订登陆窗口login的登陆脚本并回放脚本验证录制的正确性。

(2)对脚本中的agent name和password参数化,并输入5组的数据。

(3)获取agent name不合法时的提示窗口信息,并将该信息写入测试报告。

(4)获取password不合法时的提示窗口信息,并将该信息写入测试报告。

4实验步骤当使用应用程序时,QTP会记录你的操作步骤,并产生测试脚本。

当停止录制后,会看到QTP在Keyword View中以表格的方式显示测试脚本的操作步骤;回放脚本时,QTP能自动执行之前的人工操作。

4.1 录制测试脚本1.执行QuickTest并开启一个全新的测试脚本⏹开启QuickTest,在“Add-in Manager”窗口中选择“visual basic”选项,点击“OK”关闭“Add-in Manager”窗口,进入QuickTest Professional 主窗口。

⏹如果QuickTest Professional 已经启动,检查“Help>About QuickTest Professional”查看目前加载了那些add-ins。

如果没有加载“visual basic”,那么必须关闭并重新启动QuickTestProfessional,然后在“Add-in Manager”窗口中选择“Web”。

⏹如果在执行QuickTest Professional时没有开启“Add-in Manager”则点击“Tool>Options”,在“General”标签页勾选“Display Add-in Manager on Startup”,在下次执行QuickTestProfessional 时就会看到“Add-in Manager”窗口了2.开始录制测试脚本选中“Test>Record”或者点选工具栏上的“Record”按钮。

QTP测试飞机订票测试

QTP测试飞机订票测试

华 东 交 通 大 学课 程 设 计 报 告 书所属课程名称 自动化测试技术题目 院 (系) 软 件 学 院 班 级学 号学生姓名 指导教师 严丽平 辅导教师 严丽平2013年 7月5 日课程设计(论文)任务书软件学院软件工程(软件测试)专业2010-班一、课程设计(论文)题目基于QTP的功能测试二、课程设计(论文)工作自 2013年 7月 1 日起至 2013 年 7月 5 日止。

三、课程设计(论文) 地点: 创新大楼软件实训中心机房四、课程设计(论文)内容要求:1.本课程设计的目的(1)使学生能掌握网站功能测试的基本思路和方法,学会使用自动化测试工具QTP进行功能测试;(2)培养学生分析、解决问题的能力;(3)提高学生的科技论文写作能力。

2.课程设计的任务及要求1)基本要求:(1)对默认环境和条件(要求详细记录环境条件)下,构造正确的输入进行正常功能需求的测试,使用常见的检查点测试,并将输入进行参数化;(2)测试系统在异常环境下的功能需求变化,并对测试的结果进行分析和汇总;(3)相应驱动的编写。

2)创新要求:在基本要求达到后,可对被测系统进行探索性测试。

3)课程设计论文编写要求(1)要按照书稿的规格打印书写课程设计论文(2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录等(3)课程设计论文装订按学校的统一要求完成4)答辩与评分标准:(1)完成原理分析:20分;(2)完成设计过程:50分;(3)完成测试:10分;(4)回答问题:20分。

5)参考文献:(1)柳胜. 《软件自动化测试框架设计与实践》.人民邮电出版社(2)陈能技.《QTP自动化测试实践》. 电子工业出版社(3)陈绍英等. 《LoadRunner性能测试实战》. 电子工业出版社6)课程设计进度安排内容天数地点构思及收集资料1图书馆设计与测试 2.5实验室撰写论文 1.5图书馆、实验室学生签名:2013年7月1 日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();评阅人:职称:副教授2013年7月6日目录一、前言(课设目的及内容) (1)二、测试计划及测试需求 (5)三、测试用例的设计 (7)四、测试过程 (10)五、测试结果分析 (17)六、课设小结及心得体会 (19)七、参考文献 (20)一、前言(课设目的及内容)QTP是一个功能测试工具,主要帮助测试人员完成软件的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某个功能点上,使用QTP的确能够帮助测试人员做很多工作。

软件测试QTP脚本录制和回放讲解

软件测试QTP脚本录制和回放讲解

QTP录制过程
(关键字视图和专家视图)、Data Table界面、Active Screen界面;
3.2 QTP的主界面
(3)在主界面中,通过单击Tools-Option-Restore layout,完成 对QTP环境默认参数的还原,然后选择菜单”AutomationRecord and Run Settings”,如图3.3所示:
登录测试项目
选择工作空间
Rational Functional Tester 将项目存储在一个称为 工作空间的文件夹中。
登录测试项目
登录到已有的测试项目
选择工作空间文件夹后,系统如果搜索到已有的 Rational Suite Project,将出现测试项目登录界面:
登录测试项目
主界面
目录下的”Flight”程序,并且开始录制所有基于”Flight” 程序的界面操作,如图3.5,3.6,3.7所示。
3.5 “Flight”程序的登录界面
QTP录制过程
图3.6 关键字视图中的录制显示
QTP录制过程
图3.7 专家视图中的录制显示
QTP录制过程
(6)录制结束后,点击 Automation-stop结束录制的过程
Functin tester的介绍
Rational Functional Tester 是一款面向对象的 自动化测试工具。 可以完成功能测试、回归测试、GUI测试和数据 驱动测试。 可以基于windows和linux两大主流操作系统平台, 用来测试java、.NET以及Web应用程序。 提供了两种脚本语言和开发环境:Eclipse 框架中 的 Java™和 Microsoft™ Visual Studio™开发 系统中的 Microsoft™ Visual Basic™ .NET。

QTP安装及Flight飞机订票系统录制演示

QTP安装及Flight飞机订票系统录制演示

QTP安装‎及F lig‎h t飞机订‎票系统录制‎演示(一)Q TP安装‎1、安装包目录‎:\\QTP9.5\setup‎.exe;2、将QTP9‎.5安装包复‎制到本地目‎录下,打开并运行‎..\QTP9.5\QTP95‎-T6510‎-15059‎\setup‎.exe文件‎,按照安装向‎导进行安装‎即可;注意在安装‎过程中需选‎择图1中安‎装类型为“自定义”进入下一步‎选中Jav‎a Add-in(将安装在本‎地硬盘驱动‎器上)如图2:图1图23、将要测试的‎应用程序p‎b srun‎文件夹拷贝‎到C:\ 根目录下;4、编辑C:\ pbsru‎n\Power‎B ranc‎h Tell‎e r31.bat文件‎;添加“set qtp=C:\Progr‎a~1\HP\Quick‎T~1\bin\java_‎s hare‎d\bin”添加连接符“+”将-Djava‎.libra‎r y.path=%DLLDI‎R%移到图3中‎所指的位置‎,并在%DLLDI‎R%前添加“%qtp%”用“;”隔开如图3‎:图3注:1、在启动QT‎P9.5安装程序‎时可能会碰‎到图4的情‎况图4我们需把注‎册表中的[HKEY_‎L OCAL‎_MACH‎I NE\SYSTE‎M\Curre‎n tCon‎t rolS‎e t\Contr‎o l\Sessi‎o n Manag‎e r\Pendi‎n gFil‎e Rena‎m eOpe‎r atio‎n s]删除掉;2、在进行QT‎P9.5安装过程‎中会出现如‎图5,我们点击“取消”键即可完成‎Q T P9.5的安装了‎。

图53、安装完成后‎,我们启动Q‎T P应用程‎序,弹出Lic‎e nse Warni‎n g 的警告页面‎,点击“Insta‎l l Licen‎s e”按钮,如图6;在进入的界‎面中选择L‎i cens‎e Type为‎“C oncu‎r rent‎licen‎s”点击“下一步”,如图7;界面中输入‎L i cen‎s e服务器‎的地址:xxxx即‎可完成与L‎i cens‎e服务器的‎连接,如图8。

单元案例_Flight航空订票系统测试.

单元案例_Flight航空订票系统测试.

单元案例_Flight航空订票系统测试.单元五软件测试案例--Flight 航空定票系统⼀、案例描述HP公司,QTP测试软件⾃带Flight 航空定票系统软件登录模块、定票模块的⽤例设计和QTP测试脚本的开发。

⼆、案例要求1、通过实验掌握“⽤例设计”;2、掌握QTP测试脚本各种处理⽅法的开发;3、保存测试结果;4、分析测试结果。

三、案例实现步骤(⼀)测试需求Flight 航空定票系统测试需求如下:1、登录模块:⽤户名和⼝令4~10 位2、定票模块不同⽤户登录,定购不同的机票;根据⽇期、定单号、姓名查询定单。

(⼆)实现步骤1.编写测试⽤例表2 Flight 航空定票系统定票模块测试⽤例2.编写⾃动化测试程序步骤:(1)运⾏QTP软件,待打开后新建⼀个Test,点击⼯具栏上的“Record”按钮,打开飞机订票系统进⾏脚本的录制,然后点击“stop”按钮,结束录制;(2)将要进⾏验证的地⽅设置参数化:图1 测试⽤例(1)图2 测试⽤例(2)(3)点击“run”按钮,回放程序,通过程序回放过程中的正确与否,进⾏修改程序;测试脚本部分程序:Starter'应⽤程序的路径Sub StarterSystemUtil.Run Environment("Flyurl")End Sub'⽤函数来验证状态Public Function testRegExp(ByVal patrn, ByRef sour)' TODO: add function body hereDim regEx ' Create variable.Set regEx = New RegExp ' Create regular expression.regEx.Pattern = patrn ' Set pattern.regEx.IgnoreCase = true ' Set case sensitivity.regEx.Global=trueif regEx.Test(sour)=true Thenreporter.ReportEvent micPass,"登录失败!",cstr(sour) Elsereporter.ReportEvent micFail,"出现异常","提⽰信息不正确!"End IfEnd Function'定义变量Dim insertNum,insertbegin, istest,istatus,iselectorder,orderid'从DataTable中取值insertNum=DataTable("iCount",dtGlobalSheet)insertbegin=DataTable("begin",dtGlobalSheet)iselectorder=DataTable("SelectOpen",dtGlobalSheet)print iselectorderistest=datatable.Value("status")'登录界⾯Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtGlobalSheet) Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtGlobalSheet) Dialog("Login").WinButton("OK").Click'判断是否有⼦提⽰框出现If Dialog("Login").Dialog("Flight Reservations").Exist Then'取⼦提⽰框上的提⽰信息istatus=Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").GetROProperty("text")testRegExp istest,istatusDialog("Login").Dialog("Flight Reservations").WinButton("确定").ClickDialog("Login").CloseElsereporter.ReportEvent micPass,"登录成功","登录成功!"DataTable.GetSheet("Action1").SetCurrentRow(insertbegin)For i=1 to insertNumsearchorderDataTable.GetSheet("Action1").SetNextRowNextopenorder(iselectorder)Window("Flight Reservation").WinMenu("Menu").Select "File;Exit"End If'打开新订单,并填写信息Sub searchWindow("Flight Reservation").WinMenu("Menu").Select "File;New Order"Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("FlyDate", dtLocalSheet) Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("FlyFrom", dtLocalSheet)'若时间不完整,弹出对话框时的处理If Window("Flight Reservation").Dialog("Flight Reservations").Exist Thensstatus=Window("Flight Reservation").Dialog("Flight Reservations").Static("Please enter a flight").GetROProperty("text") Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").ClickWindow("Flight Reservation").ActiveX("MaskEdBox").Type micBackWindow("Flight Reservation").ActiveX("MaskEdBox").Type micBackWindow("Flight Reservation").ActiveX("MaskEdBox").Type micBackWindow("Flight Reservation").ActiveX("MaskEdBox").Type micBackWindow("Flight Reservation").ActiveX("MaskEdBox").Type "051212"End IfWindow("Flight Reservation").WinComboBox("Fly To:").Select DataTable("FlyTo", dtLocalSheet)Window("Flight Reservation").WinButton("FLIGHT").Click'随机取航班iCount = Window("Flight Reservation").Dialog("Flights Table").WinList("From").GetItemsCount Window("Flight Reservation").Dialog("Flights Table").WinList("From").SelectRandomNumber(0,iCount-1)Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").ClickEnd Sub'选择座位,获取定单号Sub orderWindow("Flight Reservation").WinEdit("Name:").Set DataTable("passageName", dtLocalSheet)Window("Flight Reservation").WinRadioButton(DataTable("seat",dtLocalSheet)).ClickWindow("Flight Reservation").WinButton("Insert Order").ClickWindow("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text","Insert Done...",10000orderid = Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")DataTable("OrderNum",dtLocalSheet)=orderidEnd Sub'选择查询⽅式Sub openorder(iselectorder)DataTable.GetSheet("Action1").SetCurrentRow(insertbegin)For i=1 to insertNumIf iselectorder=1 Then'按姓名查Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Set "ON"Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").SetDataTable("passageName", dtLocalSheet)Window("Flight Reservation").Dialog("Open Order").WinButton("OK").ClickWindow("Flight Reservation").Dialog("Open Order").Dialog("SearchResults").WinButton("OK").ClickElse if iselectorder=2Then'按时间查Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Flight Date").Set "ON"Window("Flight Reservation").Dialog("Open Order").ActiveX("MaskEdBox").Type DataTable("FlyDate", dtLocalSheet) Window("Flight Reservation").Dialog("Open Order").WinButton("OK").ClickWindow("Flight Reservation").Dialog("Open Order").Dialog("SearchResults").WinButton("OK").ClickElse if iselectorder=3 then'按时间和姓名查Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Set "ON"Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").SetDataTable("passageName", dtLocalSheet)Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Flight Date").Set "ON"Window("Flight Reservation").Dialog("Open Order").ActiveX("MaskEdBox").Type DataTable("FlyDate", dtLocalSheet) Window("Flight Reservation").Dialog("Open Order").WinButton("OK").ClickWindow("Flight Reservation").Dialog("Open Order").Dialog("SearchResults").WinButton("OK").ClickElse if iselectorder=4 then' 按编号查Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"print DataTable("OrderNum",dtLocalSheet)print orderidWindow("Flight Reservation").Dialog("Open Order").WinEdit("Edit_2").SetDataTable("OrderNum",dtLocalSheet)Window("Flight Reservation").Dialog("Open Order").WinButton("OK").ClickEnd ifEnd ifEnd ifEnd IfDataTable.GetSheet("Action1").SetNextRowNextEnd Sub(4)测试执⾏报告图3 运⾏结果(1)图4 运⾏结果(2)图5 运⾏结果(3)。

登录

登录

qtp订票用户登录脚本参数化实现循环播放(自带的Flight订票系统)参数化用户登录脚本,让我调试了两天,中间遇到了很多,网上也有很多介绍参数化登录脚本的例子,但是好多都回放不了,下面是我调通的脚本步骤。

登陆测试用例操作:(1)用户名为空密码正确(2)用户名不够4个字节密码正确(3)用户名正确密码正确(4)用户名正确密码为空(5)用户名正确密码错误(6)用户名正确密码小于4个字节1.录制脚本(1)录制登录失败脚本(2)录制登录成功脚本,进入订票页面,选择“File”->"Exit",录制结束脚本如下:2.参数化脚本(1)参数化用户名首先进入到“Keyword View”,点击“Agent Name”对应的“value”值,出来一个'<#>',点击之。

在弹出框中,选择“parameter”,其他的默认,点击“OK”即可。

也可以修改“Name”名称,这里参数化用户名,所以可以把"P_Text"修改为‘agentname’。

在DataTable中输入操作的数据,如果DataTable没有显示出来,可以点击菜单中的““。

如图所示到这里,用户名就参数化好了。

(2)参数化密码参数化密码的步骤和参数化用户名的步骤是一样的。

3.增强脚本,调试脚本录制脚本的时候,录制了一次登录失败的脚本,目的是把弹出的提示框添加到对象库中。

现在就调整脚本。

(1)首先调整脚本分为两种情况,登录成功和登录不成功。

用到if判断语句,在脚本里增加了一行"Dialog("Login").Close",使得脚本能够正常循环回放,前后停在一个界面上。

(2)设置迭代运行方式点击”File->settings->run“,迭代方式选择“run on all rows”,当运行时发生错误处理方式,默认选择“pop up message box”,弹出提示信息,也可选择其他方式;。

QTP自带的飞机订票功能测试报告(一类特选)

QTP自带的飞机订票功能测试报告(一类特选)

QTP自带的飞机订票功能测试报告
课题名称飞机订票系统功能测试报告系/专业*******学院
班级*****
学号*****
学生姓名*****
指导教师:*****
测试目标
了解熟悉QTP自动化测试工具及其基本功能,掌握QTP自动化测试的基本测试步骤,能运用QTP测试工具对系统进行简单的自动化测试。

在QTP测试中能写出基本的脚本语言,以及能够对脚本语句进行编写,能够测试登录功能、订票功能。

其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试。

测试内容
熟悉了解飞机订票系统的基本运行流程,从登录到订票、查询、删除等一系列基本功能的操作,并能够对其中的一些功能进行测试工作。

此次飞机订票系统测试内容有登录功能,其中登陆功能测试包含一个用户能否正确登录、设置参数可以进行多个用户正确和错误的登录进行测试。

在订票功能中有对订票是否成功的测试、设置检查点以及循环所有航班的测试。

测试原理分析
QTP主要采用的是GUI模拟人的操作。

它在模拟人的操作时会通过录制记录操作的对象及所做的操作和顺序,然后在回放时按照记录顺序操作这些对象。

而在这个模拟的过程中最重要的莫过于界面对象控件的识别。

基本操作
第二步:点击QTP的执行文件
第二步:第一步完成后会出现下图的对画框,然后点击”OK”,如图1-01;
图1-01
第三步:选择“Blank Test”选项,如图1-02;。

qtp关于飞机订票系统的脚本分享(

qtp关于飞机订票系统的脚本分享(

qtp关于飞机订票系统的脚本分享(转)2010-11-15 10:10:00| 分类:QTP |字号订阅#################################' 新建一条订票信息' 飞行日期参数化'#################################Window("Flight Reservation").RestoreWindow("Flight Reservation").WinButton("Button").ClickWindow("Flight Reservation").WinObject("Date of Flight:").Type DataTable("Date_of_Flight", dtGlobalSheet)'######################################' 出发地点随机选择下拉列表中的一项'######################################Dim n1,Rdm_flyfromn1=Window("Flight Reservation").WinComboBox("FlyFrom:").GetROProperty("items count")RandomizeRdm_flyfrom=RandomNumber(0,n1-1)'msgbox(Rdm_flyfrom)Window("Flight Reservation").WinComboBox("Fly From:").Select(Rdm_flyfrom)wait(2)'######################################' 目的地点随机选择下拉列表中的一项'######################################Dim n2,Rdm_flyton2=Window("Flight Reservation").WinComboBox("FlyTo:").GetROProperty("items count")RandomizeRdm_flyto=RandomNumber(0,n2-1)'msgbox(Rdm_flyto)Window("Flight Reservation").WinComboBox("Fly To:").Select(Rdm_flyto)wait(2)'#################################################################### ########' 点击Flights按钮;随即选择一个时间点的航班:点击OK按钮;旅客姓名参数化'###########################################################################Window("Flight Reservation").WinButton("FLIGHT").ClickWindow("Flight Reservation").Dialog("FlightsTable").WinList("From").Select RandomNumber(0, 100)Window("Flight Reservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("Flight Reservation").WinEdit("Name:").Set DataTable("Name", dtGlobalSheet)'Radioitems=Window("FlightReservation").WinRadioButton("Business").GetROProperty("Button")'msgbox(Button)'#################################################################### ########################'手工产生一个随机数,达到随机选择商务舱、经济舱、头等舱的目的,点击Insert Order插入订票信息'#################################################################### ########################'方法(一)'Dim x1,x2'Randomize'x1=RandomNumber(1,3)' If x1="1" then' x2="Business"' else if x1="2" then' x2="Economy"' else x2="First "' end if' end if'Window("Flight Reservation").WinRadioButton(x2).Set'方法(二)Dim i,bi=RandomNumber(1,3)Select Case iCase 1 b="First"Case 2 b="Business"Case 3 b="Economy"End SelectWindow("FlightReservation").WinRadioButton("First").SetTOProperty"text",bWindow("Flight Reservation").WinRadioButton("First").SetWindow("Flight Reservation").WinButton("Insert Order").Clickwait(6)DimRecordNo,Radioitems'定义一个变量RecordNo=Window("Flight Reservation").WinEdit("OrderNo:").GetROProperty("text")'获取Order NoDataTable("OrderNo",dtGlobalSheet)=RecordNo'将OrderNo写入datatable,以后检查用'#######################'订票详细信息的获取'#######################Dimflyfrom,flyto,flightno,departuretime,arrivaltime,airline,price,total flyfrom=Window("Flight Reservation").WinComboBox("FlyFrom:").GetROProperty("regexpwndtitle")flyto=Window("Flight Reservation").WinComboBox("FlyTo:").GetROProperty("regexpwndtitle")flightno=Window("Flight Reservation").WinEdit("FlightNo:").GetROProperty("regexpwndtitle")departuretime=Window("Flight Reservation").WinEdit("Departure Time:").GetROProperty("regexpwndtitle")arrivaltime=Window("Flight Reservation").WinEdit("Arrival Time:").GetROProperty("regexpwndtitle")airline=Window("FlightReservation").WinEdit("Airline:").GetROProperty("regexpwndtitle") price=Window("FlightReservation").WinEdit("Price:").GetROProperty("regexpwndtitle")total=Window("FlightReservation").WinEdit("Total:").GetROProperty("regexpwndtitle")'#########################################################'将订票的详细信息插入到datatable中,作为run-time datatable'######################################################### DataTable("flyfrom",dtGlobalSheet)=flyfromDataTable("flyto",dtGlobalSheet)=flytoDataTable("flightno",dtGlobalSheet)=flightnoDataTable("departuretime",dtGlobalSheet)=departuretimeDataTable("arrivaltime",dtGlobalSheet)=arrivaltimeDataTable("airline",dtGlobalSheet)=airlineDataTable("price",dtGlobalSheet)=priceDataTable("total",dtGlobalSheet)=total###########################################'检查点【一】,根据Customer Name进行检查。

QTP飞机订票系统测试用例

QTP飞机订票系统测试用例
用户名:mingzi
,密码:
Hoho (错误大于6次)
登陆失败
提示错误次数太多,不能再登录了
fail
开发人员
No_2
模块信息
订票页面
用例作者
No_2
参考信息
需求说明、设计说明
测试类型
功能测试
设计日期
2012年12月5日
测试人员
***
测试方法
手工测试和自动化测试结合
测试日期
2012年12月13日
测试对象
项目名称
飞机订票系统
项目编号
001
开发人员
No_1
模块信息
登录页面
用例作者
No_1
参考信息
需求说明、设计说明
测试类型
功能测试
设计日期
2012年12月5日
测试人员
***
测试方法
手工测试和自动化测试结合
测试日期
2012年12月13日
测试对象
测试用户能否正常登陆
前置条件
存在正确的用户名:登陆页面正常装载(用户名不固定,密码为mercury不区分大小写)
fail
08
输入正确的用户名,错误的密码(没区分大小写),按Enter键
用户名:mingzi
,密码:memememe
登陆失败
提示密码错误,请重试
fail
09
输入错误的用户名,错误的密码,按Enter键
用户名:%45#@
,密码:¥2wsgh
登陆失败
提示登录不成功,请重试
fail
10
输入错误的用户名或者密码(没区分大小写)次数过多时,按Enter键
fail
05

qtp测试飞机订票使用DataTable参数化实验

qtp测试飞机订票使用DataTable参数化实验

飞机订票使用DataTable参数化(实验III)原理:通过关键字视图可观察到自动化测试脚本是由操作步骤与数据构成的。

如测试脚本在某个变量中重复使用,而该变量的值经常需要根据具体测试需求进行变更。

QT参数化可以实现无须打开测试脚本,直接改变量的值,提供了高效的维护测试脚本方式。

主要过程包括:录制实验程序,使用DataTable进行参数化,同时使用RandomNumber实现参数化的正常运行和测试。

初步掌所握QuickTest Professional的环境变量的使用,同时对Data Driver了解其概念。

一:实现步骤1.1:点击安装并QuickTest安装步骤完成后,运行QuickTest Professional,出现如下界面,点击Automation->Record and Run Setting,选择红框中的容。

1.2:将flight4b.exe打开,运行至此界面,确保录制从这个阶段开始1.3插入一条订票的记录,注意记好num号,生成如下的测试过程,并运行回放该测试的结果,点击run验证“仅录制预定机票的过程”1.4:要求测试过程为全部passII.对预定机票中的数据进行参数化2.1:在test用例中选中Fly From这个项2.2:命名为Fly_from,点击确定2.3:,以此类推,对Fly_to进行参数化,命名后点击OK2.4参数如下红框所示,手动添加进参数,London Denver ; London Frankfurt;也可以自已多添几条,前提是机票预定系统里有这些地点即可。

2.5:出错信息如附,因为手工添加参数后,QT并没有识别到,所以我们下一步采用RandomNumber来实现2.6:选择Flight Table下的From,点击#2.7:选择random Number2.8:测试完成,参数化自动执行Data table表中的参数。

III:环境变量的使用3.1使用正常的录制过程,机票录入系统界面弹出即可。

基于QTP的飞机订票系统功能测试

基于QTP的飞机订票系统功能测试

飞机订票系统功能测试报告课题名称飞机订票系统功能测试报告系/专业计算机与软件学院班级软件0931学号0902343213学生姓名小贤指导教师:董飚2011年10月16日目录第1章订票系统简介 (3)1.1订票功能 (3)1.2修改订票功能 (3)1.3删除订票功能 (4)第2章测试需求分析与计划 (5)2.1需求分析 (5)2.1.1 功能点1 (5)2.1.2 功能点2 (5)2.1.3 功能点3 (5)2.2 测试计划 (6)2.2.1 编写测试用例表 (6)2.2.2 根据测试用例执行测试 (6)2.2.3测试汇总表 (6)2.2.4汇总分析 (6)第3章测试用例及执行 (7)3.1订票功能测试 (7)3.1.1 测试用例 (7)3.1.2录制脚本过程(截屏) (9)3.1.3 测试脚本 (12)3.1.4 执行和结果 (12)3.2修改功能测试 (13)3.2.1 测试用例 (13)3.2.2 测试过程(截屏) (13)3.2.3 测试脚本 (17)3.2.3执行和结果 (18)3.3删除功能测试 (19)3.3.1 测试用例 (19)3.3.2 测试过程 (19)3.3.3 测试脚本 (21)3.3.4 执行和结果 (22)第4章测试结果分析 (23)4.1测试用例的汇总表 (23)4.2检查项 (23)4.3分析与建议 (23)第5章飞机订票系统测试小结 (24)参考文献 (25)第1章订票系统简介1.1订票功能第一步:用户Mercury登录到飞机订票系统。

如图1.1(图1.1)第二步:用户可以在相应的栏目里输入日期、出发地、目的地、飞机班次、顾客的姓名、飞机票数、类型等后,点击“insert”按钮成功订票1.2修改订票功能第一步:用户Mercury登录到飞机订票系统。

,如图1.2(图1.2)第二步:用户根据原来订票的信息,打开原来自己订票的信息。

第三步:用户修改原有的订票订票信息1.3删除订票功能第一步:用户Mercury登录到飞机订票系统。

QTP实验报告

QTP实验报告

QTP实验报告专业:班级:指导教师:姓名:学号:一、 测试目标本次试验所用得软件为Q TP 所自带得飞机订票系统、目得在于了解熟悉Q TP 自动化测试工具及其基本功能,掌握QT P自动化测试得基本测试步骤,能运用QTP 测试工具对系统进行简单得自动化测试。

在QTP 测试中能写出基本得脚本语言,以及能够对脚本语句进行编写。

本次所测试得内容包括QTP 基本得录制与回放、增加点击h elp 步骤、添加检查点以及参数化操作、二、 测试原理分析QTP 主要采用得就是GUI 模拟人得操作、它在模拟人得操作时会通过录制记录操作得对象及所做得操作与顺序,然后在回放时按照记录顺序操作这些对象、而在这个模拟得过程中最重要得莫过于界面对象控件得识别。

三、 基本操作3。

1 基本得启动操作第一步:点击QTP 得执行文件;第二步:第一步完成后会出现下图得对话框,然后选择Activ eX,点击OK,如图1;第四步:出现如一下图所示得对话框,然后点选B la nk Test,如图2;图13.2 录制与回放3.2.1 录制以Windo ws 得订票系统为例,录制登陆退出操作,操作前先选择Too ls -Options-Re storeLay out,A ut omatio n—Record and Run Se tt ings,开始录制(注:这里用户名我们统一用m ercu ry)。

3.2.2回放录制完成后为了验证录制就是否正确,要进行脚本得回放、在回放时会出现如下图所示得操作,此时点选第二个选项,如图3。

3.2.3查瞧报告回放结束后我们可以在Au tom ation —Res ul ts 查瞧结果报告,可以在T oo ls -Optio ns -Run 标签中就是否勾选vi ew results when r un s es sion end s来设定r es ult s在什么时候显示。

报告结果如图4;图2图33.3增加点击h elp 步骤选中Login 点右键,I nsert Ste p-Ste p Ge nerat or 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

飞机订票系统测试脚本录制、回放、调试
原理:在正确安装QuickTe st的基础上,熟悉样例程序“飞机票系统(Flight)”的基本功能和使用,以用户名(mercury)、密码(mercury)登录Flight系统,插入一张订票记录。

体验QuickTest Professional录制过程与回放过程,录制飞机订票系统的登录功能并插入一张订票记录,录制运行场景,查看测试的结果。

一:实现步骤
1.1:点击安装并QuickTest安装步骤完成后,运行QuickTest Professional,出现如下界面,点击modify Add-in License
1.2 安装完原程序后,将GetLicense.exe注册机放到安装目录(默认C:\Program Files\Mercury Interactive\QuickTest Professional)并运行它,注册机将生成一个注册文件,该文件在C:\Program Files\Common Files\Mercury Interactive\License Manager。

用自已电脑所带的记事本打开名字为lservrc的文件,复制“第一行中含#之前的所有字符”。

1.3选择automation菜单,将要测试的示例程序载入。

点击OK确认按钮。

1.4点击record,开始录制程序
1.5进入飞机销售系统,并生成相应的记录。

1.6生成相关的记录
1.7生成相关的图数据表格
1.8运行Run按钮回放,开始程序的运行。

1.9调试并生成结果数据
至此,一个简单的飞机订票系统测试脚本录制、回放、调试制作完毕。

相关文档
最新文档