winrunner学习交流

合集下载

Winrunner教程_基础篇

Winrunner教程_基础篇

• When WinRunner learns the description of a GUI object, it looks at the object’s physical properties. Each GUI object has many physical properties such as class, label, width, height, handle, and enabled to name a few. WinRunner only learns the properties it needs to uniquely distinguish an object from all other objects in the application.
Winrunner 测试流程
• 官方推荐
ONLY FOR SUI Map
• GUI applications are made up of GUI objects such as windows, buttons, lists, and menus.
• GUI Map指图形用户接口地图,Winrunner正是通过这张地图来找到 软件中的每一个按键、输入框等等。
• WinRunner stores the information it learns in a GUI map. When WinRunner runs a test, it uses the GUI map to locate objects: It reads an object’s description in the GUI map and then looks for an object with the same properties in the application being tested.

WinRunner培训02-winrunner使用概述

WinRunner培训02-winrunner使用概述
Win Runner使用概述
OCTIGA
ห้องสมุดไป่ตู้
2.1 启动Win Runner

点击开始>程序>Win Runner>Win Runner 启动WR。 WR的Record/Run Engine(记录/执行引擎)的图标 出现在Windows的任务条上。这个引擎设立和维护 WR和被测软件之间的连接。

第一次启动WR会看到欢迎窗口,你可以选择新建测试、打 开已有测试或快速预览WR。如果不希望下次启动看到这个 窗口,可以把Show on startup前面的勾去掉。

把Show on startup前面的勾去 掉,这个Add-In Manager的窗口就 不会在WR启动的时 候出现。你也可以 在进入WR后在 Settings>General Options>Environ ment 里面设置是否 在开始时显示这个 窗口以及等待时间 等。
谢谢!
2.2 Win Runner主窗口

主窗口包括以下部分:
a). Win Runner title bar 标题栏 b). Menu bar 菜单栏 c). Standard toolbar 标准工具栏,包含 运行测试时常用的命令 d). User toolbar 用户工具栏,包含创建 测试时常用的命令 e). Status bar 状态栏
2.3 测试窗口

在测试窗口创建和执行测试,窗口包含以下部分: a). Test Window title bar 测试窗口标题栏, 显示当前打开的测试名称 b). Test script 测试脚本, 通过录制或编写代 码方式生成 c). Execution arrow 执行箭头,指明当前正在 执行的那一行脚本,如果想要移动这个标志到某 一行,只需要在该行左侧空白处点击鼠标左键 d). Insertion point 插入点,支出你可以插入 或编辑文本的地方

Winrunner经验总结

Winrunner经验总结

.1 脚本录制规范:基本原则是录制脚本要分开、gui文件要合并、批调用回放验证、可移植回放验证。

1.1.1 录制脚本要分开:脚本太大,不仅不利于以后的维护,并且会导致WinRunner的不可预测的错误产生(具体可以参考WinRunner 的Readme文档)。

录制时,可以根据测试用例的流程,拆分为几个小流程,对每个小流程分别录制成不同的脚本。

1.1.2 gui文件要合并:首先,要在系统参数中,设置gui的录制模式为“Global GUI Map File录制过程中,WinRunner会自动产生gui文件,一个测试用例要确保生成一个公用gui文件。

用一个gui文件主要是为了以后gui对象的维护,脚本回放时gui对象的查找。

但是由于我们的测试用例是分开录制的,每个小流程录制时都会产生一个gui临时文件,因此录制完脚本后要把临时gui文件合并到该测试用例的公用gui文件中。

但是也要注意,开始新的录制前,一定要先手工加载测试用例的公用gui文件。

如果划分的子流程超过20个,则按每20个子流程录制一个gui文件的方式。

Gui文件太大,会影响WinRunner的回放效率。

1.1.3 批调用回放验证:为了提高脚本的正确性,每录制完成一个子流程后,都要恢复数据库,其他初始环境进行回放,以近早发现脚本错误。

单个测试用例脚本录制完成后,要专门写一个主脚本,进行各子脚本的主次调用处理,然后恢复数据库和其他初始环境进行回放,以验证整个脚本是否可以正确回放。

1.1.4 可移植回放验证:由于WinRunner 工具的限制,在本机回放成功后,如果把脚本移植到其他机器上,往往无法成功。

这其中既有自己编写的脚本问题,又有WinRunner录制自动生成的脚本问题。

自己编写脚本问题:往往是编写的可移植性较差,如加载gui文件时用的是绝对地址,如gui_load(“c:\\aa\\aa.gui”),这样的脚本换到其他机器必然出错。

WinRunner录制自动生成的脚本问题: WinRunner的录制脚本往往和机器的环境有关,如果换了其他机器环境,往往回放不成功,这就需要手工修改脚本。

winrunner使用

winrunner使用

Winrunner使用实验报告班级:姓名:学号:上机实验的问题和要求:理解和熟悉Winrunner的测试过程,能过录制脚本,插入检查点,本实验的测试应用程序为机票预定系统(winrunner自带)。

(可参考winrunner安装目录下的教程,如默认安装则文件夹为C:\Program Files\Mercury Interactive\WinRunner\doc中的wr_tut.pdf文件)注意:第14周上交本报告,报告命名方式:winrunner使用-学号-姓名。

一、使用工具GUI SPY和使用快速测试脚本向导理解winrunner如何识别GUI对象,要求识别该应用系统登录界面的Help按钮,记录你看到的信息,并运行快速测试脚本向导。

(参考lesson2)二、录制测试脚本录制一个预定机票的过程,并把录制的脚本记下(参考lesson3)三、同步点的使用录制一个插入订单,然后马上删除订单的测试脚本,分别设置Timeout for checkpoints and Cs statements值为100000和1000,观察运行的结果有何不同,说明为什么?(参考lesson4)四、检查点的使用在应用程序的版本A中录制一个脚本,在版本B中运行,检查在版本B中open oder对话框中,当checkbox:Order NO 选中时,checkbox :Customer Name的属性enable属性的值是否为期望的值,记下测试脚本。

(参考lesson5)五、使用winrunner创建基于数据驱动的测试使用应用程序Flight4a录制一个打开一个订单,接着打开Fax Order对话框,并关闭的测试测试脚本。

接着在这个脚本上添加脚本用来检查Fax Order对话框中总价是否等于票的数量乘以票的单价。

最后创建基于数据驱动的测试可以检查订单1,2,3,4。

(可参考教程lesson7、8),重点理解winrunner是怎么识别对象的。

winrunner 7.6 tutorial 说明书

winrunner 7.6 tutorial 说明书

WinRunner 7.6 TutorialOldsidney学习笔记/oldsidneyTable of ContentsWelcome to the WinRunner Tutorial 41.WinRunner简介51.1自动测试的好处51.2了解WinRunner的测试流程51.3熟悉WinRunner的使用者接口61.3.1执行WinRunner 61.3.2档案(File)工具列71.3.3测试(Test)工具列71.3.4除错(Debug)工具列81.3.5使用者(User)工具列82.设定GUI Map 102.1了解WinRunner如何识别应用程序中的GUI对象 102.2用GUI Spy查看GUI对象的属性 102.3选择GUI Map模式 132.3.1GUI Map File per Test 132.3.2Global GUI Map File 132.3.3设定要使用的GUI Map File模式 142.4使用RapidTest Script Wizard 143.录制测试脚本203.1选择录制模式203.1.1Context Sensitive 203.1.2Analog 203.2录制Context Sensitive模式的测试脚本 213.3了解测试脚本223.4录制Analog模式的测试脚本 233.5执行测试脚本253.6分析测试结果263.7录制时的建议284.同步点(Synchronize)304.1何时该使用同步点 304.2录制测试脚本324.3变更预设等待时间的设定 344.4如何识别何种问题需要以同步点解决 344.5加入同步点354.6执行测试脚本并检视结果 365.GUI对象检查点(Checkpoint) 385.1如何检查GUI对象 385.2建立GUI对象检查点 395.3执行测试脚本415.4在另一个版本的Flight Reservation执行测试脚本 445.5建立GUI对象检查点时的建议 466.图像检查点476.1如何检查应用程序的图像 476.2建立图像检查点486.3检视预期结果496.4在另一个版本的Flight Reservation执行测试脚本 506.5建立图像检查点时的建议 517.使用TSL撰写测试脚本537.1录制基本测试脚本 537.2使用函数产生器(Function Generator)在测试脚本中插入函数 547.3在测试脚本中加入判断式 557.4了解tl_step函数 567.5测试脚本的除错567.6在另一个版本的Flight Reservation执行测试脚本 578.建立数据驱动(Data-Driven)测试脚本 598.1如何建立数据驱动(Data-Driven)测试脚本 598.2将测试脚本转成数据驱动(Data-Driven)测试脚本 598.3将数据加入数据表 638.4以regular expression调整测试脚本 648.5修改结果信息658.6执行测试脚本并分析结果 668.7建立数据驱动脚本时的建议 679.文字检查点(Text checkpoint) 699.1从应用程序读取文字 699.2检查文字739.3除错749.4在另一个版本的Flight Reservation执行测试脚本 749.5建立文字检查点时的建议 7610.建立批次(batch)测试 7710.1何谓批次(batch)测试 7710.2建立批次测试7710.3在另一个版本的Flight Reservation执行批次测试 7910.4检视批次测试的结果 7910.5建立批次测试脚本时的建议 8211.维护你的测试脚本8311.1当使用者接口改变时 8311.2在GUI Map中编辑GUI对象的属性 8411.3新增GUI物件到GUI Map 8711.4使用执行精灵(Run wizard)自动更新GUI Map 8812.从这里出发9212.1获得更多信息92Welcome to the WinRunner Tutorial欢迎使用WinRunner快速入门手册,本手册将引导你学习如何使用WinRunner建立自动化测试。

winrunner

winrunner

录制测试脚本
——Context Sensitive模式
• 在WinRunner点选【Test】—【Record-Context Sensitive】或直接点击 — • 在Fligtht Reservation中从file中打开Open Order 窗口
录制测试脚本
——Context Sensitive模式
使用TSL撰写测试脚本
• 保存并运行
建立数据驱动
• 当建立好测试脚本后,可能会想要用多组 不同的数据去执行测试脚本。为了达到此 目的,可以将测试脚本转换成数据驱动测 试脚步,并建立一个数据表提供测试需要 的多组数据。
建立数据驱动
• 将测试脚本lesson7转换成数据驱动测试脚 本
– 打开WinRunner,File—Open,打开lesson7
• 增强测试:为了彻底全面地测试一个应用程序,需要使用 不同类型的数据来测试。WinRunner的数据驱动向导( Data Driver Wizard)可以让你简单地点击几下鼠标,就可以 把一个业务流程测试转化为数据驱动测试,从而反映多个 用户各自独特且真实的行为。
WinRunner测试实例
• 以WinRuner自带的Flight Reservation为例, 演示WinRunner的功能。
• 对【Order No.】check box 建立检查点
GUI对象检查点
GUI对象检查点
• 当输入No.为4时 再次建立检查点
GUI对象检查点
• 点击运行按钮 测试结果 • 点击测试结果中的一条记录
图像检查点
• WinRunner提供的图像检查点,以图像的方 式比对想要比对的应用程序中的图像。 • WinRunner提供三种方式建立图像检查点:

WinRunner安装与使用教程

WinRunner安装与使用教程

WinRunner安装与使用教程第 1 章以WinRunner执行测试,就与人工测试一样,WinRunner会仿真鼠标的动作与键盘的输入,当在软件操作中点击GUI对象时,WinRunner会使用一种类C的测试脚本语言TSL生成一个测试脚本。

测试人员可以手工编辑脚本。

WinRunner包括的功能生成器可以帮助用户快速简便的在已录制的测试中添加功能。

WinRunner有两种录制测试的模式:1.环境判断模式2.模拟模式环境判断模式根据用户选取的GUI对象将用户对软件的操作动作录制下来,并忽略这些对象在屏幕上的物理位置。

每一次对被测软件进行操作,测试脚本会描述用户选取的对象和操作动作。

第 2 章WinRunner安装2.1 WinRunner8.0安装2.1.1 安装步骤下面以Windows XP为例介绍如何安装WinRunner8.0。

在获取到WinRunner8.0的安装包后,就可以运行安装包进行安装,如图所示。

Name:Company:Maintenance Number:1234-5858585858 或8888-5858585858此处可以修改安装路径安装结束。

2.2 WinRunner基础知识2.2.1 winRunner程序界面在学习创建测试之前,先了解一下winRunner的主界面。

执行【开始】->【程序集】->【WinRunner】->【WinRunner】,首先开启WinRunner Add-in Manager 窗口。

WinRunner Add-in Manager 显示你目前可以使用的Add-in,我们现在介绍的是并没有使用任何Add-in,所以请确认没有勾选任何Add-in 后按下【OK】按钮。

欢迎界面,选择Create a New Test。

2.3 WinRunner工作流程1.识别应用程序的GUI对象2.建立测试脚本3.对测试脚本出错debug4.在新版应用程序执行测试脚本5.检视测试结果6.回报缺陷defect2.3.1 设定GUI Map一般的Windows应用程序,通常是由窗口,菜单,list和按钮等所组成,而这些在WinRunner中成为GUI对象。

Winrunner最详细教程

Winrunner最详细教程

Winrunner TSL命令简介201、tab_get_item ( tab, item_num, out_item );返回tab选项的名称202、tab_get_selected ( tab, out_item, out_num );返回选定的tab选项的名称和个数203、tab_select_item ( tab, item );选择tab选项204、tab_wait_info ( tab, property, value, time );等待tab属性的值205、tbl_activate_cell ( table, row, column );双击表里某个单元206、tbl_activate_col ( table, column );双击表里某列207、tbl_activate_header ( table, column );双击表里某列标题208、tbl_activate_row ( table, row );双击表里某行209、tbl_deselect_col ( table, column );取消选择表的某列210、tbl_deselect_cols_range ( table, from_column, to_column );取消选择表里某几列211、tbl_deselect_row ( table, row );取消选择表里某行212、tbl_deselect_rows_range ( table, from_row, to_row );取消选择表里某几行213、tbl_extend_col ( table, column );往表里当前列加一列214、tbl_extend_cols_range ( table, from_column, to_column );往表里当前列加多列215、tbl_extend_row ( table, row );往表里当前行前加一行216、tbl_extend_rows_range ( table, from_row, to_row );往表里当前行加多行217、tbl_get_cell_data ( table, row, column, out_text );返回表里指定单元的内容218、tbl_get_cols_count ( table, out_cols_count );返回表的列数219、tbl_get_column_name ( table, col_index, out_col_name );返回表里指定列的标题名称220、tbl_get_column_names ( table, out_col_names, out_cols_count );返回表里列的名称和个数221、tbl_get_rows_count ( table, out_rows_count );返回表的行数222、tbl_get_selected_cell ( table, out_row, out_column );返回表里焦点所在单元223、tbl_get_selected_row ( table, row );返回当前焦点所在行224、tbl_select_cells_range ( table, start_row, start_col, end_row, end_col );在表里点击选定的几个单元225、tbl_select_col_header ( table, column );选定指定的列的标题226、tbl_select_cols_range ( table, from_column, to_column );在表里选定指定的几列227、tbl_select_rows_range ( table, from_row, to_row );在表里选定指定的几行228、tbl_set_cell_data ( table, row, column, data );设置表里某单元的内容229、tbl_set_cell_focus ( table, row, column );设置表里焦点到某个单元230、tbl_set_selected_cell ( table, row, column );在表里选定指定的单元231、tbl_set_selected_col ( table, column );在表里选定指定的列232、tbl_set_selected_row ( table, row );在表里选定指定的行233、obj_click_on_text ( object, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );点击一个对象的文本234、obj_find_text ( object, string, result_array [, search_area [, string_def ] ] );返回一个对象字符串的位置235、obj_get_text ( object, out_text [, x1, y1, x2, y2 ] );从对象里读取文本236、obj_move_locator_text ( object, string [ , search_area [ , string_def ] ] );在对象里把鼠标焦点落在字符串237、win_find_text ( window, string, result_array [, search_area [, string_def ] ] );在一个窗口返回字符串位置238、win_click_on_text (window, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );在窗口搜索文本239、win_get_text ( window, out_text [, x1, y1, x2, y2] );从窗口指定的区域读取文本240、win_move_locator_text ( window, string [ ,search_area [ ,string_def ] ] );在窗口里把鼠标焦点落在字符串241、toolbar_button_press ( toolbar, button, mouse_button );点击工具栏按钮242、toolbar_get_button ( toolbar, button_num, out_text );返回工具栏按钮名称243、toolbar_get_button_info ( toolbar, button, property, out_value );返回工具栏按钮属性值244、toolbar_get_button_num ( toolbar, button, out_num );返回工具栏按钮位置245、toolbar_get_buttons_count ( toolbar, out_num );返回工具栏按钮的个数246、toolbar_select_item ( toolbar, toolbar_item_chain [, mouse_button ] );选择类菜单工具栏的某项247、web_browser_invoke ( browser, site );调用ie打开某个站点248、web_cursor_to_image ( image, x, y );移动鼠标指针到某个图片249、web_cursor_to_label ( label, x, y );移动鼠标指针到某个标签250、web_cursor_to_link ( link, x, y );移动鼠标指针到某个链接251、web_cursor_to_obj ( object, x, y );移动鼠标指针到某个对象252、web_event ( object, event_name [, x , y ] );在指定对象运行一个事件253、web_file_browse ( object );点击浏览按钮254、web_file_set ( object, value );在文件类型的对象设置文本值255、web_find_text ( frame, text_to_find, result_array [, text_before, text_after, index, show ] );返回帧内文本位置256、web_frame_get_text ( frame, out_text [, text_before, text_after, index ] );返回帧内文本的内容257、web_frame_get_text_count ( frame, regex_text_to_find, count );返回帧内标准表达式的事件个数258、web_frame_text_exists ( frame, text_to_find [, text_before, text_after ] );检查帧内指定的文本字符串是否存在259、web_get_run_event_mode ( out_mode );返回当前的运行模式260、web_get_timeout ( out_timeout );返回winrunner响应web的最大等待时间261、web_image_click ( image, x, y );点击一个图片链接或图片262、web_label_click ( label );点击指定的标签263、web_link_click ( link );点击朝文本链接264、web_link_valid ( name, valid );检查url链接是否有效265、web_obj_get_child_item ( object, table_row, table_column, object_type, index, out_object );返回对象的子对象的物理描述266、web_obj_get_child_item_count ( object, table_row, table_column, object_type, object_count );返回对象的子对象的个数267、web_obj_get_info ( object, property_name, property_value );返回对象属性的值268、web_obj_get_text ( object, table_row, table_column, out_text [, text_before, text_after, index] );返回对象的文本字符串269、web_obj_get_text_count ( object, table_row, table_column, regex_text_to_find, count ); 返回对象内标准表达式的事件个数270、web_obj_text_exists ( object, table_row, table_column, text_to_find [, text_before, text_after] );在对象里如果该文本存在,返回该文本271、web_refresh ( frame );winrunner重新连接指定的帧272、web_restore_event_default ( );重新设置全部事件为默认值273、web_set_event ( class, event_name, event_type, event_status );设置事件状态274、web_set_run_event_mode ( mode );设置事件运行模式275、web_set_timeout ( timeout );设置winrunner响应web的最大时间276、web_set_tooltip_color ( fg_color, bg_color );设置webtest工具条的颜色277、web_sync ( timeout );等待帧的导航完成278、web_tbl_get_cell_data ( table, row, column, starting_pos, out_text, out_actual_text_length );返回web表内指定单元的内容,开始于指定的字符279、web_url_valid ( URL, valid );检查url是否有效280、tbl_get_cell_data ( table, row, column, out_text );返回table里指定单元的内容(加载webtest)281、tbl_get_cols_count ( table, out_cols_count );返回表的列数(加载webtest)282、tbl_get_column_name ( table, col_index, out_col_name );返回表里指定列的标题的名称(加载webtest)283、tbl_get_rows_count ( table, out_rows_count );返回表的行数(加载webtest)284、web_password_encrypt ( password );将web页面的密码加密285、set_window ( window [,time] );激活窗口并确定等待时间286、win_activate ( window );激活窗口287、win_check_bitmap ( window, bitmap, time [, x, y, width, height ] );比较窗口的位图288、win_check_gui ( window, checklist, expected_results_file, time );比较窗口的gui数据289、win_check_info ( window, property, property_value [, timeout ] );检查被请求的窗口属性290、win_click_help ( window );在窗口点击帮助按钮291、win_click_on_text (window, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );在窗口搜索文本292、win_close ( window );关闭窗口293、win_drag (source_window, x, y [, mouse_button ] );从源窗口拖动对象294、win_drop ( target_window, x, y );拖动对象到目标窗口295、win_exists ( window [, time ] );检查窗口是否显示在屏幕上296、win_find_text ( window, string, result_array [, search_area [, string_def ] ] );返回窗口里字符串的位置297、win_get_desc ( window, obligatory, optional, selector, out_desc );返回窗口的物理描述298、win_get_info ( window, property, out_value );返回窗口属性的值299、win_get_text ( window, out_text [, x1, y1, x2, y2] );从窗口指定区域读取文本300、win_highlight ( window [, flashes ] );高亮显示窗口WinRunner 编码规范发布: 2008-9-25 15:49 | 作者: 网络转载 | 来源: 本站原创 | 查看: 14次 | 进入软件测试时代论坛讨论1 路径不能写死从一台机器拷贝到另一台机器上之后,WinRunner的脚本需要能够正常的运行。

实验_1_学生练习

实验_1_学生练习

实验一初识WinRunner和设置GUI MAP
实验目的:了解如何运行WinRunner 和在一个应用程序中WinRunner如何识别GUI对象;掌握如何使用GUI Spy来查看对象属性、熟悉两种GUI MAP 模式、学习使用快速测试脚本向导的方法
实验要求:在WinRunner 环境下完成实验目的中所述各项任务
实验条件:windows2000、WinRunner
实验内容及步骤:
一、运行WinRunner:
二、认识WinRunner的主窗口:
三、识别GUI(图形用户界面)对象:
1.运行航班预约应用程序:
2.运行WinRunner创建一个新测试:
3.打开GUI侦察:
4.查看所列出的唯一描述OK按钮的属性:
5.退出GUI侦察:
四、选择一种GUI MAP 的文件模式:
1.设置针对每个测试的GUI MAP 文件模式:
2.重新将GUI MAP 文件模式设置为全局的GUI MAP 文件模式:
五、使用快速测试脚本向导:
1.登录到航班预约系统中:
2.运行WinRunner创建一个新测试:
3.开始快速测试脚本向导:
4.指向要测试的应用程序:
5.清空所有的单选项:
6.接受默认的导航控制:
7.设置认知流程为快速,并开始自动识别:
8.设置在WinRunner每次启动时不要自动打开航班预约程序:
9.保存GUI信息和启动脚本:
10.在贺词页中点击OK完成快速测试脚本向导的全部任务。

1。

winrunner教程

winrunner教程

(2)模拟模式(Analog Mode)
第八章 WinRunner测试系统工具的运用
A Free sample background from
Slide 5
环境判断模式



环境判断模式根据用户选取的GUI对象将用户对软件的操 作动作录制下来,并忽略这些对象在屏幕上的物理位置。 每一次对被测软件进行操作,测试脚本会描述用户选取的 对象和操作动作。 当进行录制时间,WR会对选取的每个对象做唯一描述并 写入GUI map(映射) 中。GUI map和测试脚本被分开保存 和维护。当软件用户界面发生变化时,用户只需更新GUI map。这样一来,环境判断模式的测试脚本将非常容易地 被重复使用。 执行测试时只需要回放测试脚本。回放测试脚本的过程, 就是WR模拟一个用户使用鼠标选取对象、用键盘输入数 据的操作过程。 WR从GUI map中读取对象描述,并在被 测软件中查找符合这些描述的对象。
第八章 WinRunner测试系统工具的运用
A Free sample background from
Slide 17
两种模式的比较
GUI Map File Per Test 1.每个测试都有自带的GUI Map File 2.使用方便,保存和加载GUI 优点 Map File都是自动完成 3.作为单次测试,容易维护和 更新(就是重新录一次) 缺点 Global GUI Map File

第八章 WinRunner测试系统工具的运用
A Free sample background from
Slide 16
GUI Map的两种工作模式
当WR识别完GUI对象后,会将GUI对象的逻辑 名和物理描述存储在GUI Map File中。WR提供两 种GUI Map的工作模式:GUI Map File Per Test和 Global GUI Map File。因此,用户在创建测试前应 先确定要使用哪种GUI Map模式。 GUI Map File Per Test:每次新建测试就自动创建 一个GUI Map File。WR会在用户保存测试、打开 测试时,自动保存和自动加载GUI Map File。 Global GUI Map File:多个测试脚本共享同一个 GUI Map File,用户要手工保存和加载使用的GUI Map File。这是WR的默认模式。

Winrunner学习2)

Winrunner学习2)

目录1.简介1.1 Winrunner测试流程2.创建GUI map2.1 WinRunner如何识别GUI对象2.2 GUI Map模式的分类2.3 让WinRunner自动学习GUI2.3.1RapidTest Script wizard的使用3.录制脚本3.1录制测试3.1.1整个过程的脚本语言3.2 WR提供了三种执行测试脚本的模式3.3 插入点3.4 DataDriver Wizard使用3.4.1 驱动精灵使用步骤4. 使用TSL撰写测试脚本4.1 介绍几种简单的脚本函数4.2 如何得到tickets,price和total的值4.3 当要执行这些脚本语言时Winrunner学习1 简介WinRunner(简称WR)是基于MS Windows的功能测试工具,它可以自动处理从测试开发到测试执行的整个过程。

可以创建可以修改和可以复用的测试脚本。

1.1 WinRunner测试的流程WR的测试过程可以分为六个步骤:创建GUI map录制测试脚本调试测试脚本执行测试查看测试结果报告发现的错误2 创建GUI map2.1 WinRunner如何识别GUI对象GUI对象:指Windows应用程序的窗口(Windows),菜单(Menus),按钮(Buttons),列表(Lists)这些基本组件.WR通过”Learn”学习这些属性来识别和定位GUI对象,而WR有个菜单选项可以是专门来查看桌面上任何GUI对象的属性的。

例如,我们来看一下WR自带的一个样本程序Flight4a,它的登陆界面其中一个OK按钮的属性。

打开Winrunner程序,选择Tool工具菜单>GUI Spy,选择这个窗口右上角的Spy按钮,当鼠标移到登陆界面时,在窗口外边会出现闪动的外框,您只要把鼠标放到我们要查看的OK按钮那里就会发现在GUI Spy这个窗口里会出现许多信息,其中Recorded这个选项卡里显示的就是我们想要查看的属性。

WinRunner培训03-WinRunner如何识别GUI对象

WinRunner培训03-WinRunner如何识别GUI对象
Win Runner如何识别GUI对象
OCTIGA
3.1 关于识别GUI对象
当使用Context Sensitive模式时,这些GUI对象 (如Windows、Menus、Buttons、Lists)可以像 用户看到的那样去测试。每个对象都有一组被定 义的属性来决定它的行为和外观。WR通过学习 这些属性来识别和定位GUI对象,而不需要知道 对象的物理位置。 你可以使用GUI spy查看桌面 上任何GUI对象的属性。想知道如何把属性教给 WR请看有关理解GUI map的章节。
WR把从GUI map上学来的信息储存起来。 当执行测试时,WR使用GUI map定位对象: 先从GUI map读取有关对象的描述,然后 寻找有相同属性的对象。你可以通过查看 GUI map获得对象的全面图片。
GUI map是一个或多个GUI map文件的总合。有两 种方式组织GUI map文件:
在测试过程的任何阶段,都可以在两种模 式之间切换。具体内容请参考合并GUI map 文件。
当GUI被修改了之后,你仍然可以使用先前 的脚本。你只需要在GUI map上添加、删除 或编辑相关的对象的描述,WR就可以在修 改后的软件上找到这些对象。具体内容请 参考编辑GUI map。
你可以指定WR使用某些属性去识别特定的 一类对象。你可以教WR去识别自定义的对 象,也可以把这些对象映射到标准对象上 去。具体内容请参考配置GUI map。
你可以为整个软件创建一个GUI map文件,或者为 每个窗体创建一个GUI map文件。多重测试可以参 考同一个GUI map文件。这是WR的默认模式。对有 经验的用户来说,这是最有效率的方式。具体内 容请参考Global GUI map file模式下工作。
WR可以在每次创建新的测试时自动创建相关的GUI map文件,你无须担心有关GUI map文件的创建、 保存或读取的问题。如果你是WR新手,这是最简 单的使用方法。具体内容请参GUI map file per test模式下工作。

WinRunner介绍(不断更新)

WinRunner介绍(不断更新)

WinRunner介绍(不断更新)1. WinRunner在项⽬中的作⽤可以⽤WinRunner为所测试应⽤程序的GUI,功能和回归测试创建⾃动化脚本。

2. WinRunner的测试过程主要包括如下6个阶段:⽂件:WinRunner可以通过它来识别被测试应⽤程序中的GUI对象。

1).创建GUI Map⽂件创建测试脚本:通过录制,编程,或两者的组合创建。

在录制测试脚本时,在你想检查被测试应⽤程序响应的地⽅插⼊验证点。

2).创建测试脚本:调试脚本:⽤调试(Debug)的模式运⾏测试脚本以确保它们可以平稳地运⾏。

还可以使⽤WinRunner提供的Step, Step Into, Step out功能来调试脚本。

3).调试脚本4).运⾏测试:运⾏测试:⽤验证(Verify)的模式运⾏测试脚本来测试你的应⽤程序。

当WinRunner在运⾏中碰到验证点时,它会将被测应⽤程序中的当前数据和以前捕捉的期望数据进⾏⽐较,如果发现了任何不匹配,WinRunner将会把⽬前的情况捕捉下来作为真实的结果。

检查结果:确定测试脚本的成功或是失败。

在每次测试脚本运⾏结束之后,WinRunner会将结果显⽰在报告中。

它描述了所有在运⾏中碰到的重要的事件,例如验5).检查结果:证点,错误信息,系统信息或是⽤户信息。

如果发现在运⾏中有任何不匹配的验证点,你可以在测试结果窗⼝中查看期望的和实际的结果。

提交缺陷:如果⼀个测试脚本是由于所测试应⽤程序中的缺陷⽽导致失败的,你可以直接从测试结果窗⼝中提取缺陷的相关信息。

6).提交缺陷:3. WinRunner 的GUI Map⽂件WinRunner利⽤GUI Map⽂件来识别应⽤程序中的对象。

它将学习到的窗⼝或对象信息储存在GUI Map⽂件中。

当WinRunner运⾏测试脚本时,它利⽤GUI Map来定位对象。

它从GUI Map⽂件中读取对象的描述并且在被测应⽤程序中寻找具有相同属性的对象。

winrunner中的tsl学习资料

winrunner中的tsl学习资料

tsl脚本命令(转贴)一Winrunner Context Sensitive命令列表1.ActiveBar_combo_select_item ( band_tool , item_name );选择下拉菜单某一项,例如:set_window("Form1", 1);ActiveBar_combo_select_item("Format;Font", "Arial");In the following example, WinRunner selects the third item in the Format:Font tool. set_window("Form1", 1);ActiveBar_combo_select_item("Format;Font", "#3");2.ActiveBar_dump ( file_name );存储活动工具栏信息,包括标题、名称、ID等。

file_name 参数包括路径,例如:set_window("Form1", 1);ActiveBar_dump ("d:Bardump.txt");3、ActiveBar_select_menu ( band_tool [, events_only ] ) ;选择菜单某一项,例如:in the following example, WinRunner selects the Cut menu item in the Edit toolbar. set_window("Form1", 1);ActiveBar_select_menu ("Edit;Cut",TRUE);4、ActiveBar_select_tool (band_tool [, events_only ] ) ;选择工具栏里某一项,例如:set_window("Form1", 1);ActiveBar_select_tool("Format;Center", TRUE);5、win_check_bitmap ( window, bitmap, time [, x, y, width, height ] );比较窗口位图,6、obj_check_bitmap ( object, bitmap, time [, x, y, width, height] );比较对象位图,7、button_check_info ( button, property, property_value );检查按钮属性的值8、button_check_state ( button, state );检查单选框或复选框的状态9、button_get_info ( button, property, out_value );返回按钮属性的值10、button_get_state ( button, out_state );返回单选框或复选框的状态11、button_press ( button );点击按钮12、button_set ( button, state );设置单选框或复选框的状态13、button_wait_info ( button, property, value, time );等待按钮的属性值变化14、calendar_activate_date ( calendar, date );双击日历某个日期15、db_check ( checklist, expected_results_file [ , max_rows [ , parameter_array ] ] );比较当前数据库数据和期待的数据库数据16、db_connect ( session_name, connection_string );建立一个数据库session并建立odbc连接17、db_disconnect ( session_name );断开连接结束session18、db_execute_query ( session_name, SQL, record_number );执行sql语句返回记录集19、db_get_field_value ( session_name, row_index, column );返回数据库特定区域的值20、db_get_headers ( session_name, header_count, header_content );返回数据库session的列的数量及列的内容并以tab分组21、db_get_last_error ( session_name, error );返回最后一条数据库session错误信息22、db_get_row ( session_name, row_index, row_content );返回特定行内容23、db_record_check ( ChecklistFileName , SuccessConditions, RecordNumber ); Compares information that appears in the application under test during a test run with the current values in the corresponding record(s) in your database.24、db_write_records ( session_name, output_file [ , headers [ , record_limit ] ] );把结果记录集写到一个文本文件25、ddt_close ( data_table_name );关闭数据表文件26、ddt_close_all_tables();关闭全部数据表27、ddt_export ( data_table_namename1, data_table_namename2 );把一个数据表信息导到另一个数据表文件28、ddt_get_current_row ( data_table_name, out_row );返回数据表当前所在行29、ddt_get_parameters ( table, params_list, params_num );返回数据表的参数和参数的个数30、ddt_get_row_count ( data_table_name, out_rows_count );返回数据表行数31、ddt_is_parameter ( data_table_name, parameter );返回一个参数是否在数据表里有效32、ddt_next_row ( data_table_name );指向数据表中到当前行的下一行33、ddt_open ( data_table_name [ , mode ] );打开或创建一个可以访问的数据表34、ddt_report_row ( data_table_name );报告当前行到测试结果35、ddt_save ( data_table_name );保存数据表信息36、ddt_set_row ( data_table_name, row );设置当前行为第几行37、ddt_set_val ( data_table_name, parameter, value );插入parameter列一个新值value38、ddt_set_val_by_row ( data_table_name, row, parameter, value );插入特定行的parameter列一个新值value39、ddt_show ( data_table_name [ , show_flag ] );显示或隐藏数据表,1是显示,0是隐藏40、ddt_sort ( table_file, row1, col1, row2, col2, sort_by_rows, key1 [ , key2, key3 ] );根据关键字将数据表特定区域的值排序,sort_by_rows 参数1是按行,0是按列41、ddt_update_from_db ( data_table_name, file, out_row_count [ , max_rows ] );从数据库往数据表里导数据;42、ddt_val ( data_table_name, parameter );返回数据表当前行的参数的值43、ddt_val_by_row ( data_table_name, row_number, parameter );返回数据表特定行的参数的值44、date_age_string ( date, years, month, days, new_date );将日期相应改变返回新值45、date_align_day ( align_mode, day_in_week );指定特定的日期给某天46、date_calc_days_in_field ( field_name1, field_name2 );计算两个日期间的天数47、date_calc_days_in_string ( string1, string2 );计算字符串格式的日期间的天数48、edit_check_info ( edit, property, property_value );检查对象属性的值49、edit_check_selection ( edit, selected_string );检查选择的字符串是否存在50、edit_check_text (edit, text, case_sensitive );检查编辑对象的文本内容51、edit_delete ( edit, start_column, end_column );删除编辑对象的文本内容52、edit_delete_block ( edit, start_row, start_column, end_row, end_column );删除文本区53、edit_get_block ( edit, start_row, start_column, end_row, end_column, out_string );返回文本区54、edit_get_info ( edit, property, out_value );返回编辑对象的属性值55、edit_get_row_length ( edit, row, out_length );返回编辑对象里行的长度56、edit_get_rows_count ( edit, out_number );返回编辑对象里行数57、edit_get_selection ( edit, out_string );返回编辑对象的选定字符串58、edit_get_selection_pos ( edit, out_start_row, out_start_column, out_end_row, out_end_column );返回选定区域的开始和结束位置59、edit_get_text ( edit, out_string );返回编辑对象的文本60、edit_insert ( edit, text, columnI );在编辑对象第一行插入文本61、edit_insert_block ( edit, text, row, column );在一个多行编辑对象插入文本62、edit_replace ( edit, text, start_column, end_column );替换一个编辑对象的内容63、edit_replace_block ( edit, text, start_row, start_column, end_row, end_column );替换一个编辑对象的多行内容64、edit_set ( edit, text );替换编辑对象的全部内容65、edit_set_insert_pos ( edit, row, column );把鼠标指针放到编辑对象特定位置66、edit_set_selection ( edit, start_row, start_column, end_row, end_column );选择编辑对象的文本67、edit_type ( edit, text );在编辑对象敲入字符串68、edit_wait_info ( edit, property, value, time );等待编辑对象属性的值69、obj_check_gui ( object, checklist, expected_results_file, time );比较当前的gui对象数据70、win_check_gui ( window, checklist, expected_results_file, time );对一个窗口比较当前的gui对象数据71、get_class_map ( custom_class, out_standard_class );返回和一个自定义的类相关的标准类72、get_record_attr ( class, out_obligatory, out_optional, out_selector );从一个对象类返回属性73、get_record_method ( class, out_method );返回一个对象类的方法74、set_class_map ( custom_class, standard_class );关联一个自定义类和一个标准类75、set_record_attr ( class, oblig_prop, optional_prop, selector );设置一个对象类的属性76、set_record_method ( class, method );设置对一个类的记录方法77、unset_class_map ( custom_class );解开一个自定义类和标准类的关联关系78、GUI_add ( file path, window, object, physical_desc );往gui map文件里加一个对象79、GUI_buf_get_desc ( file, window, object, out_desc );返回guimap文件里对象的物理描述80、GUI_buf_get_desc_attr ( file, window, object, property, out_prop_value ); 返回guimap文件里对象的属性的值81、GUI_buf_get_logical_name ( file, physical_desc, window, out_name ); 返回guimap 文件里对象的逻辑名称82、GUI_buf_new ( file );创建新的gui对象文件83、GUI_buf_set_desc_attr ( file, window, object, property, value );设置guimap 文件里对象的属性的值84、GUI_close ( file );关闭guimap文件85、GUI_close_all ();关闭全部guimap文件86、GUI_delete ( file, window, obj );从guimap文件里删除一个对象87、GUI_desc_compare ( desc_1, desc_2 );比较两个物理描述88、GUI_desc_get_attr ( physical_desc, property, out_attr_value );从物理描述得到属性的值89、GUI_desc_set_attr ( physical_desc, property, value );设置属性的值90、GUI_get_name ( out_name, out_version );返回测试程序下gui对象的类型91、GUI_get_window ( );在guimap里返回当前窗口92、GUI_list_buf_windows ( file, out_windows, out_number );列举出guimap文件里所有的窗口93、GUI_list_buffers ( out_files, out_number );列举所有打开的guimap文件94、GUI_list_desc_attrs ( physical_desc, out_array );列举一个gui对象的属性值95、GUI_list_map_buffers ( out_file, out_number );列举所有载入的guimap文件96、GUI_list_win_objects ( file, window, out_objects, out_number );列举一个窗口的全部对象97、GUI_load ( file_name );载入一个guimap文件98、GUI_map_get_desc ( window, object, out_desc, out_file );返回guimap里对象的物理描述99、GUI_map_get_logical_name ( physical_desc, window, out_obj, out_file );返回guimap里对象的逻辑名称100、GUI_open ( file_name );打开guimap文件tsl脚本命令(转贴)二101、GUI_save ( file_name );保存guimap文件102、GUI_save_as ( current_file_name, new_file_name );另存为guimap文件103、GUI_set_window ( window_name );设置guimap里目标识别范围104、GUI_unload ( file );卸载guimap文件105、GUI_unload_all ( )卸载全部的guimap文件106、icon_move ( icon, x, y );移动图标到新位置107、icon_select ( icon );点击鼠标选择图标108、java_activate_method( object, method, retval [ , param1, ... param8 ] );调用请求的java方法109、java_fire_event ( object , class [ , constructor_param1,..., constructor_paramX ] );模拟一个java对象的事件110、jco_create ( object , jco , class [ , constructor_param1 , ... , constructor_param8 ] )创建一个现有java对象的上下文java对象111、jco_free ( object_name );释放内存里指定的jco对象112、jco_free_all();释放全部内存里的jco对象113、jdc_aut_connect ( in_timeout );建立一个winrunner和java应用程序的连接114、method_wizard ( [ object ] );打开java方法的向导115、obj_key_type ( object, keyboard_input );向java组件发送事件116、obj_set_info ( object, property, value );设置对象属性的值117、popup_select_item ( "menu component;menu item" );从java活动菜单选择一个选项118、list_activate_item ( list, item [, offset ] );激活列表里某一项119、list_check_info ( list, property, property_value );检查列表属性的值120、list_check_item ( list, item_num, item_content );检查列表某项的内容121、list_check_selected ( list, selected_items );检查选中的那项122、list_collapse_item ( list, item [, mouse_button ] );隐藏树型图里的选项123、list_deselect_item ( list, item [, mouse_button [, offset ]] );取消选定列表的某一项124、list_deselect_range ( list, item1, item2 [, offset ] );取消选定2个选项125、list_drag_item ( source_list, item [, mouse_button ] );拖动源列表的某个选项126、list_drop_on_item ( target_list, target_item );把一个对象关联到目标列表的选项127、list_expand_item ( list, item [, mouse_button ] );显示隐藏的树型图选项128、list_extend_item ( list, item [, button [, offset ] ] );往指定的列表里添加一个选项129、list_extend_multi_items ( list, item_list, [, mouse_button [, offset ] ] );添加多个选项130、list_extend_range ( list, item1, item2 [, button [, offset ] ] );添加一定范围的选项131、list_get_checked_items ( list, items, number );返回标记的选项的个数和值132、list_get_info ( list, property, out_value );返回列表属性的值133、list_get_item ( list, item_num, out_value );返回列表选项的内容134、list_get_item_coord ( list, item, out_x, out_y, out_width, out_height );返回列表选项的四个坐标135、list_get_item_info ( list, item, state, out_value );返回列表选项的状态136、list_get_item_num ( list, item, out_num );返回列表选项的位置137、list_get_selected ( list, out_item, out_num );返回列表里选定选项的数字和字符串值138、list_select_item ( list, item [,button [, offset ] ]);选择一个列表选项139、list_select_multi_items ( list, item_list [, mouse_button [, offset ] ] );选择一个列表的多个选项140、list_select_range ( list, item1, item2 [, button [, offset ] ]);选定一定范围内全部选项141、list_wait_info ( list, property, value, time );等待列表属性的值142、menu_get_desc ( menu, oblig, optional, selector, out_desc );返回菜单的物理描述143、menu_get_info ( menu, property, out_value );返回菜单属性的值144、menu_get_item ( menu, item_number, out_contents );返回菜单选项的内容145、menu_get_item_num ( menu, item, out_position );返回菜单选项的位置146、menu_select_item ( menu;item [ x,y ] );选择一个菜单选项147、menu_wait_info ( menu, property, value, time );等待菜单属性的值148、obj_check_bitmap ( object, bitmap, time [, x, y, width, height] );比较对象的位图149、obj_check_gui ( object, checklist, expected_results_file, time );比较当前的gui对象数据150、obj_check_info ( object, property, property_value [, timeout ] );检查gui 对象属性的值151、obj_click_on_text ( object, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );在对象里点击文本152、obj_drag ( source_object, x, y [, mouse_button ] );从源对象拖动一个对象153、obj_drop ( target_object, x, y );拖动一个对象到目标对象154、obj_exists ( object [, time ] );检查对象是否显示在屏幕上155、obj_find_text ( object, string, result_array [, search_area [, string_def ] ] );在对象里返回字符串的位置156、obj_get_desc ( object, oblig, optional, selector, out_desc );返回对象的物理描述157、obj_get_info ( object, property, out_value );返回对象属性的值158、obj_get_text ( object, out_text [, x1, y1, x2, y2 ] );读取对象的文本159、obj_highlight ( object [, flashes ] );高亮显示对象160、obj_mouse_click ( object, x, y [, mouse_button ] );点击一个对象161、obj_mouse_dbl_click ( object, x, y [, mouse_button ] );双击一个对象162、obj_mouse_drag ( object, start_x, start_y, end_x, end_y [,mouse_button ] );在对象上拖动鼠标163、obj_mouse_move ( object, x, y );在对象里移动鼠标指针164、obj_move_locator_text ( object, string [ , search_area [ , string_def ] ] );在对象里移动鼠标到一个字符串165、obj_type ( object, keyboard_input );用键盘输入对象166、obj_wait_bitmap ( object, bitmap, time [, x, y, width, height] );等待对象位图出现在屏幕167、obj_wait_info ( object, property, value, time );等待对象属性的值168、scroll_check_info ( scroll, property, property_value );检查滚动条的属性值169、scroll_check_pos ( scroll, position );检查滚动条的当前位置170、scroll_drag ( scroll, orientation, position );滚动到指定位置171、scroll_drag_from_min ( scroll, orientation, position );从最小值开始滚动172、scroll_get_info ( scroll, property, out_value );返回滚动条的属性值173、scroll_get_max ( scroll, orientation, out_max );返回滚动条的最大位置174、scroll_get_min ( scroll, orientation, out_min );返回滚动条的最小位置175、scroll_get_selected ( slider, min_value, max_value );返回滚动条的最小和最大值176、scroll_get_pos ( scroll, orientation, out_pos );返回滚动条当前位置177、scroll_line ( scroll, orientation, [ +|- ] lines );滚动指定的几行178、scroll_max ( scroll, orientation );设置滚动条到最大位置179、scroll_min ( scroll, orientation );设置滚动条到最小位置180、scroll_page ( scroll, orientation, [+|-] pages );移动滚动条指定的页数181、scroll_wait_info ( scroll, property, value, time );等待滚动条属性的值182、spin_get_info ( spin, property, out_value );返回旋转属性的值183、spin_get_pos ( spin, out_value );返回旋转对象的位置184、spin_get_range ( spin, out_min_pos, out_max_pos );返回旋转对象的最小与最大位置185、spin_max ( spin [, index ] );设置旋转对象到最大值186、spin_min ( spin [, index ] );设置旋转对象到最小值187、spin_next ( spin [, index ] );设置旋转对象到下一个值188、spin_prev ( spin [, index ] ); 设置旋转对象到前一个值189、spin_set ( spin, item [, index ] );设置选择对象到一个选项值190、spin_wait_info ( spin, property, value, time );等待旋转属性等于指定的值191、static_check_info ( static, property, property_value );检查静态文本对象属性的值192、static_check_text ( static, text, case_sensitive );检查静态文本对象的内容193、static_get_info ( static, property, out_value );返回静态文本对象属性的值194、static_get_text ( static, out_string );返回静态文本对象的内容195、static_wait_info ( static, property, value, time );等待静态文本对象的属性值196、statusbar_get_field_num ( statusbar, field, field_index );返回状态栏区域的数字索引197、statusbar_get_info ( statusbar, property, out_value );返回状态栏的属性值198、statusbar_get_text ( statusbar, field_index, out_text );读取状态栏区域的文本199、statusbar_wait_info ( statusbar, property, value, time );等待状态栏属性的值200、tab_get_info ( tab, property, out_value );返回tab属性的值tsl脚本命令(转贴)三201、tab_get_item ( tab, item_num, out_item );返回tab选项的名称202、tab_get_selected ( tab, out_item, out_num );返回选定的tab选项的名称和个数203、tab_select_item ( tab, item );选择tab选项204、tab_wait_info ( tab, property, value, time );等待tab属性的值205、tbl_activate_cell ( table, row, column );双击表里某个单元206、tbl_activate_col ( table, column );双击表里某列207、tbl_activate_header ( table, column );双击表里某列标题208、tbl_activate_row ( table, row );双击表里某行209、tbl_deselect_col ( table, column );取消选择表的某列210、tbl_deselect_cols_range ( table, from_column, to_column );取消选择表里某几列211、tbl_deselect_row ( table, row );取消选择表里某行212、tbl_deselect_rows_range ( table, from_row, to_row );取消选择表里某几行213、tbl_extend_col ( table, column );往表里当前列加一列214、tbl_extend_cols_range ( table, from_column, to_column );往表里当前列加多列215、tbl_extend_row ( table, row );往表里当前行前加一行216、tbl_extend_rows_range ( table, from_row, to_row );往表里当前行加多行217、tbl_get_cell_data ( table, row, column, out_text );返回表里指定单元的内容218、tbl_get_cols_count ( table, out_cols_count );返回表的列数219、tbl_get_column_name ( table, col_index, out_col_name );返回表里指定列的标题名称220、tbl_get_column_names ( table, out_col_names, out_cols_count );返回表里列的名称和个数221、tbl_get_rows_count ( table, out_rows_count );返回表的行数222、tbl_get_selected_cell ( table, out_row, out_column );返回表里焦点所在单元223、tbl_get_selected_row ( table, row );返回当前焦点所在行224、tbl_select_cells_range ( table, start_row, start_col, end_row, end_col );在表里点击选定的几个单元225、tbl_select_col_header ( table, column );选定指定的列的标题226、tbl_select_cols_range ( table, from_column, to_column );在表里选定指定的几列227、tbl_select_rows_range ( table, from_row, to_row );在表里选定指定的几行228、tbl_set_cell_data ( table, row, column, data );设置表里某单元的内容229、tbl_set_cell_focus ( table, row, column );设置表里焦点到某个单元230、tbl_set_selected_cell ( table, row, column );在表里选定指定的单元231、tbl_set_selected_col ( table, column );在表里选定指定的列232、tbl_set_selected_row ( table, row );在表里选定指定的行233、obj_click_on_text ( object, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );点击一个对象的文本234、obj_find_text ( object, string, result_array [, search_area [, string_def ] ] );返回一个对象字符串的位置235、obj_get_text ( object, out_text [, x1, y1, x2, y2 ] );从对象里读取文本236、obj_move_locator_text ( object, string [ , search_area [ , string_def ] ] );在对象里把鼠标焦点落在字符串237、win_find_text ( window, string, result_array [, search_area [, string_def ] ] );在一个窗口返回字符串位置238、win_click_on_text (window, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );在窗口搜索文本239、win_get_text ( window, out_text [, x1, y1, x2, y2] );从窗口指定的区域读取文本240、win_move_locator_text ( window, string [ ,search_area [ ,string_def ] ] );在窗口里把鼠标焦点落在字符串241、toolbar_button_press ( toolbar, button, mouse_button );点击工具栏按钮242、toolbar_get_button ( toolbar, button_num, out_text );返回工具栏按钮名称243、toolbar_get_button_info ( toolbar, button, property, out_value );返回工具栏按钮属性值244、toolbar_get_button_num ( toolbar, button, out_num );返回工具栏按钮位置245、toolbar_get_buttons_count ( toolbar, out_num );返回工具栏按钮的个数246、toolbar_select_item ( toolbar, toolbar_item_chain [, mouse_button ] );选择类菜单工具栏的某项247、web_browser_invoke ( browser, site );调用ie打开某个站点248、web_cursor_to_image ( image, x, y );移动鼠标指针到某个图片249、web_cursor_to_label ( label, x, y );移动鼠标指针到某个标签250、web_cursor_to_link ( link, x, y );移动鼠标指针到某个链接251、web_cursor_to_obj ( object, x, y );移动鼠标指针到某个对象252、web_event ( object, event_name [, x , y ] );在指定对象运行一个事件253、web_file_browse ( object );点击浏览按钮254、web_file_set ( object, value );在文件类型的对象设置文本值255、web_find_text ( frame, text_to_find, result_array [, text_before, text_after, index, show ] );返回帧内文本位置256、web_frame_get_text ( frame, out_text [, text_before, text_after, index ] );返回帧内文本的内容257、web_frame_get_text_count ( frame, regex_text_to_find, count );返回帧内标准表达式的事件个数258、web_frame_text_exists ( frame, text_to_find [, text_before, text_after ] );检查帧内指定的文本字符串是否存在259、web_get_run_event_mode ( out_mode );返回当前的运行模式260、web_get_timeout ( out_timeout );返回winrunner响应web的最大等待时间261、web_image_click ( image, x, y );点击一个图片链接或图片262、web_label_click ( label );点击指定的标签263、web_link_click ( link );点击朝文本链接264、web_link_valid ( name, valid );检查url链接是否有效265、web_obj_get_child_item ( object, table_row, table_column, object_type, index, out_object );返回对象的子对象的物理描述266、web_obj_get_child_item_count ( object, table_row, table_column, object_type, object_count );返回对象的子对象的个数267、web_obj_get_info ( object, property_name, property_value );返回对象属性的值268、web_obj_get_text ( object, table_row, table_column, out_text [, text_before, text_after, index] );返回对象的文本字符串269、web_obj_get_text_count ( object, table_row, table_column, regex_text_to_find, count ); 返回对象内标准表达式的事件个数270、web_obj_text_exists ( object, table_row, table_column, text_to_find [, text_before, text_after] );在对象里如果该文本存在,返回该文本271、web_refresh ( frame );winrunner重新连接指定的帧272、web_restore_event_default ( );重新设置全部事件为默认值273、web_set_event ( class, event_name, event_type, event_status );设置事件状态274、web_set_run_event_mode ( mode );设置事件运行模式275、web_set_timeout ( timeout );设置winrunner响应web的最大时间276、web_set_tooltip_color ( fg_color, bg_color );设置webtest工具条的颜色277、web_sync ( timeout );等待帧的导航完成278、web_tbl_get_cell_data ( table, row, column, starting_pos, out_text, out_actual_text_length );返回web表内指定单元的内容,开始于指定的字符279、web_url_valid ( URL, valid );检查url是否有效280、tbl_get_cell_data ( table, row, column, out_text );返回table里指定单元的内容(加载webtest)281、tbl_get_cols_count ( table, out_cols_count );返回表的列数(加载webtest)282、tbl_get_column_name ( table, col_index, out_col_name );返回表里指定列的标题的名称(加载webtest)283、tbl_get_rows_count ( table, out_rows_count );返回表的行数(加载webtest)284、web_password_encrypt ( password );将web页面的密码加密285、set_window ( window [,time] );激活窗口并确定等待时间286、win_activate ( window );激活窗口287、win_check_bitmap ( window, bitmap, time [, x, y, width, height ] );比较窗口的位图288、win_check_gui ( window, checklist, expected_results_file, time );比较窗口的gui数据289、win_check_info ( window, property, property_value [, timeout ] );检查被请求的窗口属性290、win_click_help ( window );在窗口点击帮助按钮291、win_click_on_text (window, string [ ,search_area [ , string_def [ , mouse_button ] ] ] );在窗口搜索文本292、win_close ( window );关闭窗口293、win_drag (source_window, x, y [, mouse_button ] );从源窗口拖动对象294、win_drop ( target_window, x, y );拖动对象到目标窗口295、win_exists ( window [, time ] );检查窗口是否显示在屏幕上296、win_find_text ( window, string, result_array [, search_area [, string_def ] ] );返回窗口里字符串的位置297、win_get_desc ( window, obligatory, optional, selector, out_desc );返回窗口的物理描述298、win_get_info ( window, property, out_value );返回窗口属性的值299、win_get_text ( window, out_text [, x1, y1, x2, y2] );从窗口指定区域读取文本300、win_highlight ( window [, flashes ] );高亮显示窗口tsl脚本命令(转贴)四301、win_max ( window );最大化窗口到全屏302、最小化窗口为一个图标303、win_mouse_click ( window, x, y [, mouse_button [, modifier] ] );在窗口点击鼠标304、win_mouse_dbl_click ( window, x, y [, mouse_button [, modifier ] ] );在窗口双击鼠标305、win_mouse_drag ( window, start_x, start_y, end_x, end_y [, mouse_button ] );在窗口做鼠标拖动操作306、win_mouse_move ( window, x, y );移动鼠标焦点到指定的位置307、win_move ( window, x, y );移动窗口到一个绝对位置308、win_move_locator_text ( window, string [ ,search_area [ ,string_def ] ] );移动鼠标焦点到窗口的某个字符串309、win_open ( window );打开应用程序窗口310、win_resize ( window, width, height );调整窗口大小311、win_restore ( window );恢复窗口从前的大小312、win_type ( window, keyboard_input );用键盘输入窗口313、win_wait_bitmap ( window, bitmap, time [, x, y, width, height] );等待窗口位图314、win_wait_info ( window, property, value, time );等待窗口属性值315、atan2 ( y, x );返回y/x(正切)的弧度316、cos ( x );返回余弦值317、exp ( x );返回e的指数值318、int ( x );返回实数的整数部分319、log ( x );返回自然对数320、sin ( x );返回正弦值321、sqrt ( x );返回平方根值322、delete array [ subscript ];删除数组里某个元素323、split ( string, array [ , field_separators ] );将输入分成区域保存在数组里324、call test_name ( [ parameter1, parameter2, ... parametern ] );调用其他测试脚本325、call_chain_get_attr ( property, level, out_value );返回调用链里测试或函数的信息326、call_chain_get_depth ( );返回调用链选项的个数327、call_close test_name ( [ parameter1, parameter2, ... parametern ] );调用测试脚本,完成时关闭测试328、call_ex ( Astra_test_path );从winrunner里调用Astra QuickTest测试329、return [ expression ];返回测试或函数的结果表达式330、texit ( [ expression ] );停止执行当前的测试331、treturn [ ( expression ) ];停止调用测试返回控制调用测试332、load ( module_name [,1/0 [,1/0 ] ] );载入一个编译过的模块333、reload ( module_name [,1|0 [,1|0] ]);删除编译过的模块并重新载入内存334、unload ( [ module | test [ , function_name ] ] );从内存里删除编译模块335、define_object_exception (recovery_scenario_name, function, window, object, property [ , value ] );对一个gui对象异常事件定义简单的观察场景336、define_popup_exception (recovery_scenario_name, function, window );对pop-up 事件定义异常337、define_tsl_exception (recovery_scenario_name, return_code [, TSL_function ] );定义tsl事件异常事件338、exception_off ( recovery_scenario_name );解除指定的观察场景339、exception_off_all ( );解除所有的观察场景340、exception_on (recovery_scenario_name );激活指定的观察场景341、file_close ( file_name );关闭用file-open打开的文件342、file_compare ( file1, file2 [ , save_file ] );比较两个文件的内容343、file_getline ( file_name, out_line );读取文件下一行,并将其分配给一个变量344、file_open ( file_name, mode );打开或创建指定的文件345、file_printf ( file_name, format, exp1 [ , exp2,... exp30 ] );按格式打印文件346、pause ( [ expression ] );暂停测试执行并输出提示信息347、report_msg ( message );往测试报告里写信息348、sprintf ( format, exp1, exp2,...expn );返回固定格式字符串到一个变量349、str_map_logical_to_visual ( logical_string, visual_string );把逻辑字符串转换成形象字符串350、eval ( statement1 [; statement2;.... statementn;] );评估并执行附属的tsl语句351、get_unique_filename ( folder_path , file_prefix , file_extension , out_filename , with_underscore );基于指定的前缀,创建唯一的文件名352、nargs ( );返回参数通过的个数353、tl_step ( step_name, status, description );把测试脚本分成几块,并在当前测试结果里插入状态信息354、invoke_application ( file, command_option, working_dir, show );调用windows 应用程序355、dos_system ( expression );执行dos命令356、ascii ( string );返回字符串第一个字符的asc码357、compare_text ( str1, str2 [, chars1, chars2 ] );比较两个字符串358、index ( string1, string2 );显示两个字符串位置359、length ( string );计算字符串里字符的个数360、match ( string, regular_expression );寻找字符串里正规表达式的事件361、substr ( string, position [, length ] );从字符串里提取子字符串362、tolower ( string );转换全部大写字母到小写字母363、toupper ( string ); 转换全部小写字母到大写字母364、end_transaction ( transaction [ , status ] );标记一个性能分析的结束365、get_time ( );返回当前系统时间366、start_transaction ( transaction_name ); 标记一个性能分析的开始367、time_str ( [ expression ] );将返回的整数时间转换成字符串368、wait ( seconds [, milliseconds] );测试暂停invoke_application(file,command_option,working_dir,show);file:应用程序的文件名,绝对路径;command_option:应用程序的参数;working_dir:应用程序工作路径;show:程序运行时的显示模式;数据库检查点:标准检查点和运行时检查点标准检查点检查行数、列数、内容是否一致;包括defaultcheck仅检查数据库内容是否一致;custom check 可随意组合上面三种方式检查运行时检查点检查程序界面上某些控件显示的内容是否在数据库中匹配记录,三种方式:匹配一条、匹配多条、没有匹配记录。

实验二:WinRunner录制和执行测试脚本

实验二:WinRunner录制和执行测试脚本
三.实验步骤:如教材120页。
四.遇到问题和解决方法:
1.ቤተ መጻሕፍቲ ባይዱ
2.
3.
五.总结与体会:
专业:班级:学号:姓名:
3)学习和掌握使用WinRunner建立测试、录制和保存测试文件、执行测试脚本的方法。
二.实验要求:
1.使用WinRunner在Context Sensitive模式下录制测试脚本,在flight reservation中开启一个订单,然后开启发送传真窗体发送一个传真的过程
2.比较WinRunner在Analog模式下和在Context Sensitive模式下录制签名的不同之处,体会两种模式的不同应用领域和特点。
一.实验内容:
1)学习和掌握使用WinRunner在Context Sensitive模式下录制在flight reservation中开启一个订单、开启发送传真窗体和模拟发送传真的方法;
2)学习和掌握使用WinRunner在Analog模式下录制签名的方法,并观察使用Context Sensitive模式录制签名的缺点;
使用winrunner在contextsensitive模式下录制测试脚本在flightreservation中开启一个订单然后开启发送传真窗体发送一个传真的过程比较winrunner在analog模式下和在contextsensitive模式下录制签名的不同之处体会两种模式的不同应用领域和特点
实验

自动化软件测试工具WinRunner的运用

自动化软件测试工具WinRunner的运用
强大的测试脚本语言
Winrunner使用强大的脚本语言,支持多种编程接口,方便测试人员 编写灵活、可维护的测试脚本。
丰富的测试功能
Winrunner提供了丰富的测试功能,如数据驱动测试、测试结果自动 生成等,方便测试人员进行各种类型的软件测试。
Winrunner的缺点
学习曲线陡峭
01
Winrunner的脚本语言较为复杂,学习曲线较陡峭,需要测试
Winrunner是什么
Winrunner是一种自动化软件测试工 具,它能够模拟人工操作,对软件进 行测试并生成测试报告。
Winrunner通过模拟用户在软件界面 上的操作,如点击、输入、选择等, 来验证软件的功能和性能是否符合要 求。
Winrunner的特点
自动化程度高
Winrunner能够自动执行测试用例,大大提高了测试 效率。
回归测试
Winrunner可以用于回归测试,确保软件的修改不会影响已有的功能。
02
CATALOGUE
Winrunner的安装与配置
Winrunner的安装步骤
01
02
03
04
05
下载 Winrunner…
运行安装程序
同意许可协议
选择安装路径
安装完成
从官方网站或授权渠道下 载Winrunner的安装包。
04
CATALOGUE
Winrunner的测试技术
功能测试
功能测试
验证软件是否满足用户需求,包括输入、输 出、异常处理等。
测试用例设计
根据需求文档和设计文档,设计覆盖所有功 能的测试用例。
测试执行
通过Winrunner录制和回放功能,自动执行 测试用例。
测试结果分析

实验三 WinRunner功能测试工具

实验三 WinRunner功能测试工具

实验二Winrunner测试工具认识班级:姓名:学号:实验时间:一、实验目的:1.理解功能测试的原理2.熟悉功能测试工具WinRunner的使用二、实验内容给定项目进行测试三、实验原理与设计WinRunner(简称WR)是一种基于MS Windows的功能测试工具。

WR可以帮助用户自动处理从测试开发到测试执行的整个过程,可以创建可修改和可复用的测试脚本,而不用担心软件功能模块的变更。

以WinRunner执行测试,就与人工测试一样,WinRunner 会仿真鼠标的动作与键盘的输入。

当在软件操作中点击GUI(图形用户界面)对象时,WR会使用一种类C的测试脚本语言(TSL) 生成一个测试脚本。

测试人员可以用手工编程的方法编辑这个脚本。

《1》脚本录制(1、Context Sensitive模式)一、实验目的:1、理解Context Sensitive模式测试的原理2、熟悉功能测试工具WinRunner的使用二、实验内容:Flight Reservation并登入三、实验原理与设计WinRunner(简称WR)是一种基于MS Windows的功能测试工具。

在录制时,使用者实验正常的操作被测试的软件,而WinRunner会把使用者的动作记录下来。

并以TSL语言记录下这些操作,产生测试脚本。

四、实验步骤1.开启WinRunner并加载GUI Map File(开始——程序——WinRunner——WinRunner ——Creat New Test)2.开启Flight Reservation并登入(开始——程序——WinRunner——Sample Application ——Flight4A——AgentName(mmmm)——Password(mercury))3、录制一个脚本(按f2键)4、打开订单(File>Oper Order)5、在随后的窗口中,选中Order No.(在checkBox中打上勾),输入数字3,按OK按钮。

功能测试软件WinRunner

功能测试软件WinRunner

实验 功能测试软件WinRunner
插入检查点:在建立一个测试的过程中可以插入检查点, 以在查找潜在错误的同时,将预想的结果和实际测试结果 进行比较。在插入检查点后,WinRunner会收集相应的性 能指标,在测试运行时对其一一验证。WinRunner允许使 用几种不同类型的检查点,包括文本、GUI、位图和数据 库等。例如用一个位图检查点,可以确认一个位图图像是 否出现在指定的位置上。WinRunner的数据库检验功能能 够自动标示出被修改的数据
软件工程学
实验 功能测试软件WinRunner
WinRunner是一个基于Windows的企业级功能测试工 具,它在业务应用正式部署之前,通过自动捕获、检 测和重放用户对应用系统的交互操作,来发现系统的 缺陷,以确保那些跨越多个应用程序和数据库的业务 流程在初次发布时就能避免故障的出现,保证系统对 所有关键业务处理功能以及处理流程的正确,保障应 用的质量和准备工作的最优化。
实验 功能测试软件WinRunner
以一个订单输入的流程为例,可以考虑将一些锁定的项 目栏 (如定单号或客户名) 转化为可变栏,这样就可以用 多套数值来检测应用程序。使用DataDriver,可以从这 些数值中选择数据来源,用于驱动测试。可将定单号或 客户名输入WinRunner的表格,也可直接从其他的表格 或数据库中导入。这些数据会被存储在WinRunner的表 格中,以便任何时候都能对其进行编辑。数据驱动性测 试不仅为用户节省了时间和资源,又提高了应用程序的 测试覆盖率
WinRunner包括两种录制测试的模式:
环境判断模式:又称上下文判断模式。根据用户选取的 GUI对象 (如窗体、清单、按钮等) 把其对软件的操作动 作录制下来,并忽略这些对象在屏幕上的物理位置。用 户对被测软件的每一次操作,测试脚本中的脚本语言都 会描述选取的对象和操作动作

winrunner实例详细使用说明

winrunner实例详细使用说明

winrunner实例详细使用说明WinRunner学习1. Lesson_1介绍略,请参考《WR_中文介绍》pdf格式文档有关介绍[参]:Lesson1_1.doc2. Lesson_2Setting up WinRunner? 描述 WinRunner 如何在一个应用程序中识别图形用户界面(GUI)属性 ? 演示如何使用(图形用户界面间谍)GUI SPY 查看对象属性 ? 描述二个(图形用户界面)GUI地图模式? 解释该如何使用 RapidTest Script Wizard 去获得GUI属性的描述和生成测试 ? 如何运行一个测试 ? 帮助你分析测试结果1、什么是GUI对象?(窗口window、按钮button、菜单menu、列表list)2、如何应用WinRunner查看GUI对象属性和值?(TOOLS\\GUI SPY….)具体例子[参]lesson2_1.doc:3、 GUI Map模式?(有两种A、The GUI Map File per Test Mode;B、The Global GUI MapFile Mode)The GUI Map File per Test Mode The Global GUI Map File Mode 创建一个测试,便生成一个GUI Map文件创建一个GUI Map文件供一组测试使用初手(刚刚开始) 熟手注意:切换模式时,要退出程序重新运行WinRunner,才能使改变生效在The GUI Map File per Test Mode模式下,关闭WinRunner前会提示你保存文件;在The Global GUI Map File Mode模式下,系统会自动保存文件。

具体例子[参]:Lesson2_2:4、 RapidTest Script Wizard功能(具体例子[参]:Lesson2_3)可以快速、容易地开始测试过程(录制GUI Map文件)??。

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


GUI对象 GUI对象
The Global GUI Map File 创建一个GUI Map文件供一组 创建一个GUI Map文件供一组 测试使用 熟手
2.3 gui对象的保存 -两种保存模式 gui对象的保存
The GUI Map File per Test 创建一个测试,便生成一个 GUI Map文件 Map文件 初手(刚刚开始) 初手(刚刚开始)
winrunner 学习பைடு நூலகம்流
2007- 2007-4-19
介绍winrunner 介绍winrunner
winrunner简介 winrunner简介 Mercury WinRunner为我们提供有力的工具 WinRunner为我们提供有力的工具 进行企业级的功能测试和回归测试。它自 动捕获、验证并重放用户交互,以便确定 故障并确保部署中的业务流程能顺利实施 并保持稳定。 优点 1、通过自动执行重复任务减少测试时间。 2、通过在升级应用程序时修改和重用测试 脚本,尽量提高投资回报。
同步点
如果出现这种问题,一般有两种方法解决, 一是:增加WR预设等待时间,步骤是 一是:增加WR预设等待时间,步骤是 Tool>General Options>Run>Setting, 将Timeout for checkpoints and CS statements的值加大。如图所示: statements的值加大。如图所示:
注意:切换模式时,要退出程序重新运行 WinRunner,才能使改变生效 WinRunner,才能使改变生效 在The GUI Map File per Test Mode模式下,关闭 Mode模式下,关闭 WinRunner前会提示你保存文件;在The WinRunner前会提示你保存文件;在The Global GUI Map File Mode模式下,系统会自动保存文件。 Mode模式下,系统会自动保存文件。

GUI对象 GUI对象
2.4 加载GUI map文件 加载GUI map文件 WR把对象的信息保存在一个GUI map文 WR把对象的信息保存在一个GUI map文 件中。当你需要用GUI map文件来寻找对象 件中。当你需要用GUI map文件来寻找对象 时,你必须把文件加载到GUI map中。你必 时,你必须把文件加载到GUI map中。你必 须在测试开始前加载合适的GUI map文件。 须在测试开始前加载合适的GUI map文件。 有两种方法加载GUI map文件: 有两种方法加载GUI map文件: a. 用GUI_load功能 GUI_load功能 b. 从GUI Map Editor中加载 Editor中加载
同步点
同步点是当你执行测试时候,所测试的应用程序 每次操作的响应时间并不一定,比如你添加一个 表单,当添加成功时候,数据会自动存入数据库, 这肯定要花一定的时间,如果你不插入同步点, WR执行下一步的等待时间远远短于数据自动存 WR执行下一步的等待时间远远短于数据自动存 如数据库的时间,这时WR就会提示错误,如下 如数据库的时间,这时WR就会提示错误,如下 面的错误图示
四 检查点
3.3文本检查点(text checkpoint) 文本检查点( checkpoint) 1) 验证某值是否在一定范围内 2) 计算数值是否正确 3) 当某个指定的文字出现在画面上时就执行 某些操作 注意:GUI checkpoint(用户界面检查点)和text checkpoint(用户界面检查点) 注意: checkpoint(文本检查点)的区别:读取标准GUI checkpoint(文本检查点)的区别:读取标准GUI 对象(如编辑框、列表、菜单等)中的信息, 使用GUI checkpoint;读取位图或非标准GUI 使用GUI checkpoint;读取位图或非标准GUI 对象的信息,使用text checkpoint。 对象的信息,使用text checkpoint。
五 调试脚本
六 winrunner 脚本语言
TSL(Test Script Language ) WinRunner的脚本语言是Mercury WinRunner的脚本语言是Mercury Interactive’s Test Script Language (TSL),这是一种类C的脚本语 TSL),这是一种类C 言。你可以通过增加另外的TSL函数和编程元素 言。你可以通过增加另外的TSL函数和编程元素 TSL (例如Windows API)或WinRunner的虚拟编程工 (例如Windows API)或WinRunner的虚拟编程工 具(函数生成器(Function Generator))来增强 具(函数生成器(Function Generator))来增强 你录制的脚本。
四 检查点
检查GUI对象可以通过创建GUI 检查GUI对象可以通过创建GUI checkpopints 来实现,一个GUI Checkpoints可以检查一个 来实现,一个GUI Checkpoints可以检查一个 GUI对象属性的行为。(字段、CheckBox、是 GUI对象属性的行为。(字段、CheckBox、是 否激活状态) 否激活状态)
五 调试脚本
4.1 三种运行模式: Verify验证模式: Verify验证模式: 运行一个测试脚本去检查应用程序的行为并保存 测试结果时,采用Verify模式。 测试结果时,采用Verify模式。 Debug调试模式: Debug调试模式: 运行测试脚本检查是否运行平稳并且没有语法上 的错误,可采用Debug模式。 的错误,可采用Debug模式。 Update更新模式: Update更新模式: 当你想为GUI检查点或位图(Bitmap)检查点创建一 当你想为GUI检查点或位图(Bitmap)检查点创建一 个新的预期结果,可采用Updata模式 个新的预期结果,可采用Updata模式
六 winrunner 脚本语言
TSL(测试脚本语言)解释--了解测试脚本: TSL(测试脚本语言)解释--了解测试脚本: # Login set_window ("Login", 4); 这是指打开了名为”login”的窗口 这是指打开了名为”login” edit_set ("Agent Name:", "messsss");选择了Agent Name, "messsss");选择了Agent Name, 填写了用户名 password_edit_set("Password:", "kzptnyoslzjsaz"); button_press (“OK”);选择了OK按钮 (“OK”);选择了OK按钮 # Flight Reservation 进入了另一个窗口进行操作。 win_move ("Flight Reservation", 423, 168); win_move指的 win_move指的 是移动了窗口的位置 set_window ("Flight Reservation", 5); menu_select_item ("File;Open Order...");选择了菜单选项item Order...");选择了菜单选项item
四 检查点
在脚本中可以插入以下四类检查点: • GUI检查点 GUI检查点 • 位图检查点 • 文本检查点
四 检查点
3.1 GUI检查点 GUI检查点 又称用户界面检查点.设置GUI检查点 又称用户界面检查点.设置GUI检查点 (检查字段内容值;单选按钮是打开还 是关闭;按钮是否处于激活状态等) 比如:你可以查看一个button是否可用或 比如:你可以查看一个button是否可用或 一个清单中哪个项目被选定了。
Analog
应用程序考虑位图(BMP图画) 应用程序考虑位图(BMP图画) 精确定位,如:绘图线条走 向 需要精确的鼠标运动轨迹
提示:F2是两种记录模式的切换快捷键 提示:F2是两种记录模式的切换快捷键

GUI对象 GUI对象
2.1 什么是GUI对象? 什么是GUI对象?
GUI指 GUI指Graphical User Interface,即图形用 Interface, 户接口(button、menu、toolbar、 户接口(button、menu、toolbar、etc) GUI Map指图形用户接口地图,Winrunner Map指图形用户接口地图, 正是通过这张地图来找到软件中的每一个 按键、 按键、输入框等等
winrunner窗体简介 winrunner窗体简介
二 录制模式
Context Sensitive
应用程序只考虑GUI对象( 应用程序只考虑GUI对象(菜 单、按钮) 单、按钮) 不需要精确的鼠标运动轨迹 计划在应用程序的各个版本 中应用(回归) 中应用(回归) Button_Press(“OK”);//脚 Button_Press(“OK”);//脚 本 Move_lactor_Track(1); Mtype(“<kleft>”);//脚本 Mtype(“<kleft>”);//脚本
四 检查点
3.2位图检查点(bitmap checkpoint) 位图检查点( checkpoint)
举例而言,在一个应用程序中,点击“清除” 按钮后应该清空某一位图区域。我们录制脚本 时,在点击按钮这个动作之后对此区域设置 bitmap checkpoint(checkpoint 记录下区域为空 checkpoint( 白状态),将来利用这一脚本测试新版本的应 用程序时,就可以检查“清除”按钮的功能是 否依旧有效。如果位图区域无法被清空,检查 结果中就会报错。 Checkpoint 的范围确定有两种方式:以窗口为 参考对象或以屏幕为参考对象。
winrunner测试流程 winrunner测试流程
插入各种检 查点 插 件 录 制 识别Gui对象 并建立脚本 调试脚本 执行脚本
相关文档
最新文档