游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

自动化测试实例二脚本开发(上)

  脚本开发
  完成测试用例后就可以开发测试脚本,一般包括自动化测试框架的开发和功能脚本的开发。在本节中不介绍如何开发自动化测试框架,有兴趣的读者可以参考《QTP自动化测试与框架模型设计》一书中第19章和第20章的自动化测试框架的内容。本章介绍该实例中需要调用到的函数。
  (1)公用函数封装。
  在本实例中需要封装的函数主要包括:读取测试用例、输入每个测试用例的测试结果。
  通过获取单元格中数据的行数,可以确定测试用例文档中有多少条测试用例,代码如下:函数过程名称:GetExcelSheetRowsCount函数过程的目的:获取Sheet表中记录行数假设:无影响:无输入:无返回值:记录行数创建者:黄文高创建时间:20100811修改者:修改原因:修改时间:FunctionGetExcleSheetRowsCount(ExcelPath,SheetName)SetExcelBookCreateObject(Excel。Application)SetExcelSheetCreateObject(Excel。Sheet)SetmyExcelBookExcelBook。WorkBooks。Open(ExcelPath)SetmyExcelSheetmyExcelBook。WorkSheets(SheetName)GetExcleSheetRowsCountmyExcelSheet。UsedRange。Rows。CountExcelBook。QuitSetExcelSheetNothingSetExcelBookNothingEndFunction
  读取单元格中的数据,即获得测试用例值,代码如下:函数过程名称:GetExcelCells函数过程的目的:读取Excel表中单元格的值假设:无影响:无输入:无返回值:Excel表中单元格的值创建者:黄文高创建时间:20100811修改者:修改原因:修改时间:FunctionGetExcelCells(ExcelPath,SheetName,SheetColumn,SheetRow)SetExcelBookCreateObject(Excel。Application)SetExcelSheetCreateObject(Excel。Sheet)SetmyExcelBookExcelBook。WorkBooks。Open(ExcelPath)SetmyExcelSheetmyExcelBook。WorkSheets(SheetName)SheetValuemyExcelSheet。cells(SheetColumn,SheetRow)。ValueGetExcelCellsSheetValueExcelBook。QuitSetExcelSheetNothingSetExcelBookNothingEndFunction
  在该实例中还需要记录每个测试用例执行的结果,封装的代码如下:函数过程名称:CreateHtmlLog函数过程的目的:创建HTML格式的日志文件,并写Header假设:无影响:无输入:无返回值:无创建者:黄文高创建时间:20100809修改者:修改原因:修改时间:PublicSubCreateHtmlLog()ConstForReading1,ForWriting2,ForAppending8DimfileSystemObj,fileSpecDimcurrentTimecurrentDateDatecurrentTimeTimetestNameenvironment。Value(TestName)SetfileSystemObjCreateObject(Scripting。FileSystemObject)fileSpecTestPath测试记录testName。htmlSetlogFilefileSystemObj。OpenTextFile(fileSpec,ForAppending,False,True)logfile。writeline()logfile。writeline()logfile。writeline()logfile。writeline()logfile。writeline()logfile。writeline(TestLogFile)logfile。writeline()logfile。writeline()logfile。writeline(size2TestCaseName)logfile。writeline(size2TestCaseID)logfile。writeline(size2TestResult)logfile。writeline(size2TestTime)logfile。writeline(size2ActualValue)logfile。writeline(size2ExpectValue)logfile。writeline()logFile。CloseSetlogFileNothingEndSub函数过程名称:WriteHtml函数过程的目的:写HTML日志文件假设:无影响:无输入:无返回值:无创建者:黄文高创建时间:20100809修改者:修改原因:修改时间:FunctionWriteHtml(BusinessName,TestCaseID,TestResult,TestTime,ActualValue,ExpectValue)ConstForReading1,ForWriting2,ForAppending8DimfileSystemObj,fileSpecDimcurrentTimecurrentDateDatecurrentTimeTimetestNameenvironment。Value(TestName)SetfileSystemObjCreateObject(Scripting。FileSystemObject)fileSpecTestPath测试记录testName。htmlSetlogFilefileSystemObj。OpenTextFile(fileSpec,ForAppending,False,True)logfile。writeline()logfile。writeline()logfile。writeline(size2BusinessName)logfile。writeline(size2TestCaseID)ifucase(TestResult)Passthenlogfile。writeline(006000faceTahomasize2ucase(TestResult))elselogfile。writeline(CE0000faceTahomasize2ucase(TestResult))endiflogfile。writeline(size2TestTime)logfile。writeline(size2ActualValue)logfile。writeline(size2ExpectValue)logfile。writeline()logfile。writeline()logfile。writeline()logFile。CloseSetlogFileNothingendfunction
  由于在本实例中需要连接数据库,检查数据库中的数据是否正确,所以将连接数据库的代码进行封装,代码如下:函数过程名称:ConnectDatabase函数过程的目的:连接数据库假设:无影响:无输入:无返回值:无创建者:黄文高创建时间:20100909修改者:修改原因:修改时间:SubConnectDatabase()StrConnProviderMicrosoft。Jet。OLEDB。4。0;DataSourceC:ProgramFilesHPQuickTestProfessionalsamplesflightappflight32。mdb;PersistSecurityInfoFalseSetConnCreateObject(Adodb。Connection)SetRstCreateObject(Adodb。RecordSet)Conn。OpenStrConnEndSub
  (2)单一模式脚本开发。
  自动化测试脚本开发完成后,开始录制脚本,这个阶段主要是将自动化测试的需求转换为一个简单的脚本。
  1)录制登录过程的脚本如下:Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f746e8c4a42371e29270aa8077835adfd4e3e6fDialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。Close
  2)录制订票流程的脚本如下:Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f7470899cb23413741ea878e508c7c39c26d007Dialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。ActiveX(MaskEdBox)。Type040412Window(FlightReservation)。WinComboBox(FlyFrom:)。SelectFrankfurtWindow(FlightReservation)。WinComboBox(FlyTo:)。SelectLosAngelesWindow(FlightReservation)。WinButton(FLIGHT)。ClickWindow(FlightReservation)。Dialog(FlightsTable)。WinList(From)。Select20332FRA10:12AMLAX05:23PMAA112。20Window(FlightReservation)。Dialog(FlightsTable)。WinButton(OK)。ClickWindow(FlightReservation)。WinEdit(Name:)。SetarivnWindow(FlightReservation)。WinButton(InsertOrder)。ClickWindow(FlightReservation)。Close
  3)录制航班信息的脚本如下:Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f7470899cb23413741ea878e508c7c39c26d007Dialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。ActiveX(MaskEdBox)。Type040412Window(FlightReservation)。WinComboBox(FlyFrom:)。SelectFrankfurtWindow(FlightReservation)。WinComboBox(FlyTo:)。SelectLosAngelesWindow(FlightReservation)。WinButton(FLIGHT)。ClickWindow(FlightReservation)。Dialog(FlightsTable)。WinList(From)。Select20332FRA10:12AMLAX05:23PMAA112。20Window(FlightReservation)。Close
  4)录制查询订票信息的脚本如下:Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f7474b213b5bb9f7e950286e72b5f0d7487449bDialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。WinMenu(Menu)。SelectFile;OpenOrder。。。Window(FlightReservation)。Dialog(OpenOrder)。WinCheckBox(OrderNo。)。SetONWindow(FlightReservation)。Dialog(OpenOrder)。WinEdit(Edit)。Set42Window(FlightReservation)。Dialog(OpenOrder)。WinButton(OK)。ClickWindow(FlightReservation)。Close
  (3)脚本增强。
  录制好的单一模式脚本的功能很弱,只完成了一个简单的功能,不具备可扩展性,无法兼容不同的测试数据,所以需要对上面的脚本进行增强。在录制单一模式的脚本时,其实有一个功能是通用的,就是登录功能,每个操作的功能都需要先登录系统,所以可将一个正确登录的脚本封装成一个过程,这样可以节约脚本量,也便于维护脚本。在封装登录过程时,需要使用到描述性编程,封装的代码如下:SubLogin()Dialog(text:Login)。WinEdit(attachedtext:AgentName:)。SettestDialog(text:Login)。WinEdit(attachedtext:Password:)。SetSecure4f746e8c4a42371e29270aa8077835adfd4e3e6fDialog(text:Login)。WinButton(text:OK)。Clickwait(5)EndSub
  接着对登录的脚本进行增强操作,增强的原因是脚本需要能正确处理当输入用户名或密码出错的情况。主要需要处理的情况有:输入的用户名为空、输入的用户名少于4个字符、输入的密码为空、输入的密码少于4个字符。登录功能增强后的脚本如下:DimerrInfo返回提示的错误信息Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f772505bb7ff00c6ec281f9808222c2e89cf0ecDialog(Login)。WinButton(OK)。ClickIfDialog(Login)。Dialog(FlightReservations)。ExistThenerrInfoDialog(text:Login)。Dialog(text:FlightReservations)。Static(windowid:65535)。GetROProperty(text)Dialog(Login)。Dialog(FlightReservations)。WinButton(确定)。ClickDialog(Login)。Closeelsewait(5)Window(FlightReservation)。CloseEndIf
  订票流程脚本的增强主要需要处理订票日期未输入和输入错误的情况,订票流程功能增强后的脚本如下:Dimerrinfo返回提示的错误信息Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f7729c18243dcb0a80aed533ae02ea81b074338Dialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。ActiveX(MaskEdBox)。Type121212Window(FlightReservation)。WinComboBox(FlyFrom:)。SelectSanFranciscoIfWindow(FlightReservation)。Dialog(FlightReservations)。ExistThenerrinfoWindow(regexpwndtitle:FlightReservation)。Dialog(text:FlightReservations)。Static(windowid:65535)。GetROProperty(text)Window(FlightReservation)。Dialog(FlightReservations)。WinButton(确定)。ClickelseWindow(FlightReservation)。WinComboBox(FlyTo:)。SelectLondonWindow(FlightReservation)。WinButton(Flight)。ClickWindow(FlightReservation)。Dialog(FlightsTable)。WinList(From)。Select13800SFO10:24AMLON12:54PMAF127。47Window(FlightReservation)。Dialog(FlightsTable)。WinButton(OK)。ClickWindow(FlightReservation)。WinEdit(Name:)。SetarivnWindow(FlightReservation)。WinButton(InsertOrder)。ClickEndIfWindow(FlightReservation)。Close
  航班信息查询脚本的增强主要是需要检查当选择出发城市和到达城市后,显示出来的航班信息是否正确,脚本增强时需要获取所有航班信息。增强后的脚本如下:Dimflightinfo显示所有航班信息Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f7862cc49d3bfca65cfd26a9797bdbfab09733aDialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。ActiveX(MaskEdBox)。Type121212Window(FlightReservation)。WinComboBox(FlyFrom:)。SelectFrankfurtWindow(FlightReservation)。WinComboBox(FlyTo:)。SelectLondonWindow(FlightReservation)。WinButton(Flight)。ClickflightInfoWindow(FlightReservation)。Dialog(FlightsTable)。WinList(From)。GetROProperty(allitems)Window(FlightReservation)。Dialog(FlightsTable)。WinButton(OK)。ClickWindow(FlightReservation)。Close
  查询订票信息脚本增强主要是需要检查该航班号是否存在,如果航班号不存在,会弹出相应的对应信息;如果查询的订单号存在,就会显示出该订单的相关信息。增强后的脚本如下:Dialog(Login)。WinEdit(AgentName:)。SettestDialog(Login)。WinEdit(Password:)。SetSecure4f78720180a456bfe5666600e64d62d0553bc374Dialog(Login)。WinButton(OK)。Clickwait(5)Window(FlightReservation)。WinMenu(Menu)。SelectFile;OpenOrder。。。Window(FlightReservation)。Dialog(OpenOrder)。WinCheckBox(OrderNo。)。SetONWindow(FlightReservation)。Dialog(OpenOrder)。WinEdit(Edit)。Set55555Window(FlightReservation)。Dialog(OpenOrder)。WinButton(OK)。ClickIfWindow(FlightReservation)。Dialog(OpenOrder)。Dialog(FlightReservations)。ExistThenerrInfoWindow(regexpwndtitle:FlightReservation)。Dialog(text:OpenOrder)。Dialog(regexpwndtitle:FlightReservations)。Static(windowid:65535)。GetROProperty(text)Window(FlightReservation)。Dialog(OpenOrder)。Dialog(FlightReservations)。WinButton(确定)。ClickWindow(FlightReservation)。Dialog(OpenOrder)。Dialog(FlightReservations)。CloseEndIfWindow(FlightReservation)。Close

手机格局苹果位居第二,小米第三,华为发力智能家居文杨剑勇全球智能手机市场在今年得到复苏,且呈现出强劲的增长格局。2021年第一季度,全球智能手机出货量同比增长26,达到3。78亿台。需要指出的是,因华为手机受到限制,跌……WynEnterprise嵌入式BI为IVD行业数智化赋能一、访谈背景随着人民健康意识的提高以及医疗保障政策的完善,体外诊断(IVD,InVitroDiagnostics)行业呈现出高速的发展趋势。体外诊断是指将血液、体液、组织……169元的真无线QCYQ29蓝牙耳机,还去买啥AirPods作为蓝牙耳机,QCY耳机是我一直首选品牌,毕竟在此之前用过了QCYmini1以及QCY30这两款耳机,给我印象还算不错,至于其他蓝牙耳机,也用过不少,不过大多没什么亮点,换句话……雄安新区条例首次赋予新管委会法律地位雄安新区条例公布这几天来,社会各方面给予了热烈的讨论和解读。其中最强烈的是雄安新区降格了,由过去的中国雄安降为河北雄安。这是一种误解。在此条例出台前,雄安处于筹建阶段,没……华为P30相机简评iPhone与其相比,令人大跌眼镜!昨天,华为P30在国外发布后霸占整个新闻头条,尤其是5倍光学变焦,10倍混合变焦以及50倍数码变焦引发手机行业惊涛巨浪,友商发博表示不服。对于这次华为的潜望式长焦镜头,在……三星秀219英寸巨无霸电视MicroLED4K三星日前发布了第二代MciroLED面板电视,包括75寸(TheWindow)、219寸(TheWall)两款型号,并在CES2019上进行了展示,尤其是219英寸彻底震撼了观……比亚迪新能源出口国外日前,我们从比亚迪官方了解到,将有450台比亚迪唐EV车型在广州港集结,启程前往挪威。至此,比亚迪已累计向挪威发运超1000台唐EV。今年5月,比亚迪对外宣布,将挪威作为……一起学习唯品会爆款商品视频批量下载保存的方法正在从事电商行业又不知道如何制作产品视频的朋友们,建议先阅读这篇文章,学习产品视频的复制保存的方法,方便后期参考学习。国内的电商平台比较多,很多人都喜欢逛唯品会,遇到喜欢的产品……男同事跟我抱怨说用小米手机档次有点低今天有个男同事用小米手机的,他和我说他分享在网上了,他用小米手机别人都说他,网上人都说他用小米比较low,说小米手机就是没钱的人用的,买不起更好的,只能买个小米,来展现自己的优……非农交易做的烂?专业交易员提供4个技巧和2个事实今日(9月3日),金融市场将迎来全球瞩目的美国8月非农就业报告,这将可能成为市场的下一个推动风向标。那么,今天我们来详细聊聊全球外汇交易者非常关注的美国非农就业报告(NFP),……单独申请小程序和通过公众号快捷申请小程序有什么区别?有粉丝在后台咨询我,单独申请小程序和通过公众号快捷申请小程序有什么区别?现在大华来给你们讲解一下。申请小程序目前有2种方式:一、单独申请小程序:1、需要营业执……这些开发板你一定没玩过芯板坊是个公平公正、实事求是的平台。我们是全世界电子爱好者的芯板坊,不管你是什么肤色,我们的文化只有姹紫嫣红之别,但绝无高低优劣之分。我们绝对不是极端爱国主义者或极端民族主义者……
如何看待VIVO启动自研芯片计划?近日,有媒体报道VIVO启动自研手机芯片计划,今天我们来探讨一下。我认为可信度还是挺高的,你问我要更多的证据来支持我的观点那是没有,不过,从逻辑上能够说的通。世界主……KikaSwap8月25日正式上线三链齐发属行业首创自2020年崛起的DeFi热潮一直延续到了今年的上半年,以Compound、UniSwap、1inch等为代表的DeFi项目凭借出色的市场表现也一度吸引了庞大的用户体量。在区块……战疫2020之我是医生11月3日爱奇艺独家上映众星云集致敬中由东阳华录百纳影视股份有限公司、高梓淇工作室、网大影业(杭州)有限公司出品,征长张导演,金王来、袁伦斌监制,严屹宽、李晟、高梓淇、李建义、刘天佐、余心恬、徐菁、严丰、高若芯等主……洗碗机有没有用?购买前怎么选,购买后怎么用?海信厨卫为您解惑洗碗机在国内的普及程度越来越高,但依然有不少吃瓜群众对其不够了解,很多人依然会有洗碗机费水、费电、占地方、操作复杂、价格贵、洗不干净。。。。。。的种种偏见。相信随着日子越来越好……谢霆锋主演电影怒火重案曝先导海报再创香港警匪片新高峰10月19日,由谢霆锋领衔主演的电影《怒火重案》在腾讯影业年度发布会上首次亮相。发布会上曝光了一组先导海报,此次谢霆锋将尝试新的角色,霸气回归大荧幕。海报上,谢霆锋身着黑色西装……抗美援朝系列电影接力定档中国电影行业集体致敬中国人民志愿军中国电影人制作抗美援朝系列电影,以致敬中国人民志愿军抗美援朝出国作战70周年。今日,系列电影中的《最可爱的人》曝光概念海报宣布定档10月23日,将与《金刚川》同天上映。此外,电……电影花千骨曝概念海报2021共赴魔幻之约由新派系文化传媒、新丽传媒、秀合影视、楚伦影业联合出品、唐丽君担任制片人的魔幻剧情动作电影《花千骨》今日发布概念海报。本次发布的概念海报中,武器代表的仙和花千骨的魔相持对……第十二届海峡论坛海峡影视季成功举办两岸影视人深度云交流第十二届海峡论坛海峡影视季,于9月20日举办。海峡论坛海峡影视季由国家广播电视总局、福建省人民政府和台湾有关机构共同主办,福建省广播电视局、福建省电影局、福建省广播影视集团、厦……哥斯拉2怪兽之王持续公映至7月30日怪兽争霸继续席卷暑假星关系6月24日讯由传奇影业、华纳兄弟影片公司、华桦文化联合打造的好莱坞科幻灾难动作巨制、怪兽宇宙系列电影第三部力作《哥斯拉2:怪兽之王》正在全国热映中,截至目前影片票房已逼近……百度发布Apollo汽车机器人具备L5级自动驾驶能力日前,在百度世界大会2021上,百度创始人、董事长兼CEO李彦宏首次提出了汽车机器人的前瞻概念,并发布了具有跨时代意义的Apollo汽车机器人,具备自动驾驶、智能助理、忠诚陪伴……重拾社交那一刻,美团就停战了自2020年拼多多上线主打真实评价的产品拼小圈后,各大电商也纷纷上线了小圈类产品。拼多多以外,淘宝目前上线了淘友圈,京东上线了京友圈近日,美团也开始内测能够建立社交关系的……曹县为什么能火?光明时评【曹县为什么能火?】县长想让曹县持续火下去忽如一夜春风来,曹县霸占了热搜榜。曹县为什么会这么火?很多人拿曹县调侃,是为了借此解构北上广深的繁荣镜像。对曹县的调侃,其实就……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网