




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、王 彩Web测试与测试自动化测试与测试自动化Chapter 5OUTLINElVirtual User Generator简介lVirtual User Generator录制脚本lVirtual User Generator查看回放脚本lVirtual User Generator增强脚本2Chapter 53Chapter 5为什么要增强脚本?为什么要增强脚本? Action() 登录; 查询; 订票; 退出; Chapter 5脚本优化增强脚本优化增强4数据参数化数据参数化l 用参数替代常量,可以更真实模拟实际用户操作。l操作演示 :参数化的步骤l问题:当设置完参数后再次运行,在repl
2、ay log中有可能找不到设置的参数。解决方法: 需要在run-time setting-log中选中extended log及下方的parameter subsitution项; 另外修改run-time setting-run logic项中的迭代次数,使得迭代次数与设置的参数数量相等。这样在日志中搜索,就可以找到相应的参数替换过程了。5Chapter 5数据参数化数据参数化6Chapter 5参数化之间的关联参数化之间的关联l已经对用户名和密码进行了参数化,是不是脚本就能正常跑了,不一定。因为用户名和密码不是一一对应关系,每次运行脚本时取的用户名和密码没有对应上的话肯定就会出问题。l假设
3、,我们已经对用户名已经进行了参数化,参数名为【username】,下面设置密码参数化与用户名关联。7Chapter 5参数化之间的关联参数化之间的关联18点击“Properites”会打开编辑用户名参数化窗口。File列表框中,刚才保存用户名信息的文件“username.dat”。见下页图。Chapter 5参数化之间的关联参数化之间的关联29点击“Add Column”,添加新的一列信息,用于放置密码。Chapter 5参数化之间的关联参数化之间的关联310Chapter 5数据分配与更新方式数据分配与更新方式11Select next row【选择下一行】:顺序(Sequential):按
4、照参数化的数据顺序,一个一个的来取。随机(Random):参数化中的数据,每次随机的从中抽取数据。唯一(Unique):为每个虚拟用户分配一条唯一的数据Chapter 5数据分配与更新方式数据分配与更新方式lUpdate value on【更新时的值】:12每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。每次出现(Each occurrence):参数每出现一次时取新的值,这里强调前后两次取值不能相同。只取一次(once) :参数化中的数据,一条数据只能被抽取一次。(如果数据轮次完,脚本还在
5、运行将会报错)Chapter 513Chapter 5如果将他们进行组合,将产生九种取如果将他们进行组合,将产生九种取值方式值方式14Chapter 5组合取值方式组合取值方式15Chapter 5组合取值方式组合取值方式16Chapter 5组合取值方式组合取值方式17Chapter 5组合取值方式组合取值方式18Chapter 5组合取值方式组合取值方式19Chapter 5数据不够数据不够时处理时处理l数据不够时可以设置“when out of values”属性来判断当数据不够时的处理方式Abort Vuser:中断虚拟用户Countinue in a cylic manage:循环取
6、参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。Countinue with last value:继续用最后一条数据20Chapter 5其他类型设置其他类型设置l参数化的类型不只是文件类型,比如是特定的日期时间或者是随机数21Chapter 5考核题目考核题目2l录制注册功能的性能测试脚本参数化设置,要求注册用户名必须是唯一的,也就是每个参数只能被用一次,应该用哪种取值方式?l如何在脚本中实现注册成功后定三张票循环语句实现C语言的变量在LR脚本中要用参数化替代参数化设置22Chapter 5脚本优化增强脚本优化增强5检查点检查点l文本/图像检查点的功能在loa
7、drunner一般是不开启的,在测试较大压力下被测系统是否能保持正确功能时也可用检查点功能。l两种检查点函数web_find和web_reg_find,一般都使用后者。l插入检查点两种方式,树视图添加和脚本视图添加。l操作实例:23Chapter 5必须启用文本和图像检查点选项,否必须启用文本和图像检查点选项,否则设置的检查点会不起作用!则设置的检查点会不起作用!24Chapter 5脚本视图添加脚本视图添加25Chapter 5web_submit_form之后添加之后添加26Chapter 5web_find函数函数27web_find(web_find“,What=username,LA
8、ST);Chapter 5web_find函数函数28Chapter 5web_submit_form之前添加之前添加29Chapter 5web_reg_find()函数()函数30Chapter 5左右字符可以更精确定位(在如下源左右字符可以更精确定位(在如下源文件中)文件中)31Chapter 5web_reg_find()函数()函数该函数的作用是“在html源文件中查找相应的内容”,常用参数及含义如下:web_reg_find(Search=Body, /定义查找范围 “SaveCount=num”, /定义查找计数 Text=name, /定义查找内容查找内容 LAST);l使用该
9、函数注意以下事项:1、 位置: 该函数写在要要查找内容的请求之前,通常情况下写在如下六个函数之前:Web_castom_request();web_image();web_link();web_submit_data();web_submit_form();web_url()2、 使用技巧: 在该函数的参数中有个“SaveCount”,该参数可以记录在缓存中查找内容出现的次数.32Chapter 5脚本优化增强脚本优化增强6l插入函数l要求:如果登陆检查点成功,则继续执行,否则退出。atoi:字符串转化为整形,lr_eval_string:得到参数当前的值if(atoi(lr_eval_str
10、ing(num)0) lr_output_message(“登陆成功,继续执行);elselr_error_message(登陆失败,退出);return -1;33Chapter 5代码如下代码如下34Chapter 5脚本增强方式:插入输出函数脚本增强方式:插入输出函数lr_log_message 发送一条消息到Vuser日志文件的函数lr_error_message 发送一条错误信息到输出窗口的函数lr_message 发送一条消息到Vuser日志并输出到窗口的函数lr_output_message等 例如:lr_log_message(用户名为:%s,lr_eval_string(us
11、ername);lr_log_message(密码为:%s,lr_eval_string(password);Chapter 5脚本优化增强脚本优化增强7l关联关联关联原理关联原理自动关联自动关联手动关联手动关联录制前关联录制前关联关联函数关联函数Web_reg_save_param详解详解36Chapter 537一、关联原理一、关联原理l引题:为什么要使用关联?当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。当执行脚本时,可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再
12、对网站伺服器重新说一遍,企图骗过服务器,让服务器把网站内容传送给VuGenVuGen纪录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样。这样的作法在遇到有些服务器时还是会失效的。这时就需要关联的做法骗过服务器Chapter 5一、关联原理一、关联原理l什么是关联?所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所发送的、动态的、每次都不一样的数据。例如:我们去做飞机,登机之前要检票(机票信息相对固定),通过可以登机。过了几天拿着同一机票再去登机,自然不能登机(机票信息已过期)。那怎样才能顺利登机?可以伪造机票信息这里我们通过收
13、集别人返回的信息(机票)伪造机票,从而满足登机的验证策略。在脚本中也有类似的情况 38Chapter 5一、关联原理一、关联原理l举例:登陆系统-录制常见系统中的登陆功能,在登陆后服务器会返回SessionID,登陆后的操作都需要提交该ID确认身份。使用VuGen录制时,将会记录服务器返回的SessionID并原封不动的在下个请求中发给服务器 39Chapter 5一、关联原理一、关联原理l举例:登陆系统-回放待到回放时,服务器会在接收到用户名和密码后返回一个新的SessionID,而脚本依然发送旧的SessionID给服务器,最终因SessionID错误,导致脚本回放失败。 40Chapte
14、r 5二、自动关联二、自动关联l自动关联原理:自动关联是VuGen提供的自动扫描关联处理策略,它的原理是对同一个脚本运行和录制时的服务器的返回进行比较,来自动查找变化部分,并且提示是否生成关联。41Chapter 5二、自动关联二、自动关联l自动关联举例:用LoadRunner自带的Web Tours网站,录制一个登陆的过程然后再回放。没有发现问题。勾选Administrator中第三项(如下页图),重新录制相同的过程,(注意不能关闭浏览器)回放有错误产生如下:Action.c(29): Error -27987: Requested image not found MsgId: MERR-2
15、7987Action.c(29): web_image(Search Flights Button) highest severity level was ERROR, 0 body bytes, 0 header bytes MsgId: MMSG-2638842Chapter 5“是否忽略是否忽略userID的唯一性的唯一性”设置设置43Chapter 5二、自动关联二、自动关联问题就出在浏览器缓存的userID变化了单击Vuser菜单中Scan Script for Correlations选项、工具栏或Ctrl+F8(使用自动关联前,脚本需运行一次)运行后会看到以下内容,VuGen已识
16、别出脚本中动态内容44Chapter 5二、自动关联二、自动关联45Chapter 5二、自动关联二、自动关联单击Correlate按钮后,便生成了一个关联。关联前后的内容以及所属的Action也被列了出来。46Chapter 5二、自动关联二、自动关联此时切换到Script模式看看脚本发生了什么变化web_reg_save_param( WCSParam_Diff1“,LB=userSession value=, RB=, Ord=1, IgnoreRedirections=Yes, Search=Body, RelFrameId=1.2.1, LAST );47Chapter 5三、手动关
17、联三、手动关联l手动关联原理:手动关联是关联应用中的最有效手段,通过手动关联函数 Web_reg_save_param()将想要的字符串保存到一个参数中。 48Chapter 5三、手动关联三、手动关联l手动关联的主要步骤:第一步:录制测试脚本,录制二遍第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联第三步:确定插入关联的位置第四步:在View Script中使用web_reg_save_param函数手动建立关联第五步:将脚本中有用到关联的数据,用参数代替第六步:验证关联的正确性49Chapter 5三、手动关联三、手动关联l手动关联详细介绍:第一步:相同的操作,录制两
18、份,分别保存第二步:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联 1、在第二份脚本中,点选VuGen的【Tools】【 ComparewithVuser】,并选择第一份脚本 2、接着WinDiff会自动开启,同时显示二份脚本,并显示有差异的地方。 3、查看二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。50Chapter 5三、手动关联三、手动关联l手动关联详细介绍: 4、接着要在Recording Log或是Generation Log中找这个值。按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log
19、第一次出现的位置。 5、现在已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联第三步:确定插入关联的位置。重新执行一遍脚本,而且这次要设置Log。 1、在VuGen中点选【Vuser】【Run-Time Settings】。 2、点选【General】【Log】。 51Chapter 5三、手动关联三、手动关联l手动关联详细介绍: 3、勾选【Enable logging】、 【Always sends messages】、【Extended log】,以及【Extended log】下的所有选项。 4、按下【OK】就可以执行脚本了。 5、执行完脚本之后,在R
20、eplay Log 中搜寻刚刚复制的字符串。找到字符串后,在字符串前面会有vuser_init.c(4): ,这个4就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第4行。也可以在 Replay Log右键选择jump to source line跳到脚本中的位置。 52Chapter 5三、手动关联三、手动关联l手动关联详细介绍:第四步:在View Script中使用web_reg_save_param函数手动建立关联 1、在找到的代码行的上方点击鼠标右键,选择【insert】【New step】 2、在【Add Step】 窗口的【Find Functi
21、on】中输入Web_reg_save_param 函数并选中后点击【OK】 3、Parameter Name处输入参数名称,建议有意义的名字。 4、在【Left Boundary】中输入左边界字符串 5、在【Right Boundary】中输入右边界字符串 6、点击【OK】按钮53Chapter 5三、手动关联三、手动关联l手动关联详细介绍:第五步:将脚本中有用到关联的数据,用参数代替 1、当使用web_reg_save_param建立参数后,接下来就是用“之前定义的参数名”参数去取代脚本中写死的hard-coded。第六步:验证关联的正确性 1、执行脚本,是否能成功运行,假如还是有问题,就要
22、检查看看是否还需要再做另一个关联。 54Chapter 5四、录制前关联四、录制前关联l录制前关联:录制某些系统前,可以得到一些自动的关联函数。这就是系统默认提供的自动关联设置,打开录制选项。【Tools】【recording options】【Correlation】55Chapter 5四、录制前关联四、录制前关联 56Chapter 5四、录制前关联四、录制前关联点击 New Application,创建一个新的应用在之前的应用上点击New Rule 新建一个规则为该规则填写左右边界后点击保存现在新建一个脚本,重新录制一次Web Tours登录的操作,录制结束查看一下脚本,可以发现系统已
23、经自动按照规则生成了关联函数,运行脚本直接通过。57Chapter 5五、五、Web_reg_save_param详解详解l关联函数关联函数Web_reg_save_param详解详解打开Add Step添加步骤选择Web_reg_save_para打开关联设置窗口,如下所示:打开关联设置窗口,如下所示:58Chapter 5五、五、Web_reg_save_param详解详解l关联函数关联函数Web_reg_save_param详解详解Parameter Name :此处设置存放参数的名称,关联出来的内容将会存放在该参数中,这里受到Instance选项的影响。例如: Parameter Na
24、me 为Temp,当对应的Instance选项是 任意一个数字的时候,只会关联一个匹配的记录,关联值存放在Temp中。当Instance是ALL的时候,关联成功后的值将会依次存放在“Temp_数字”这样的参数数组中,并且会添加一个temp_ count的参数存放关联出来的记录条数。Left Boundary:此处设置左边界,这里用来填写关联对于数据处理的左匹配内容规则。此处是一个字符串。注意:转义字符为59Chapter 5五、五、Web_reg_save_param详解详解l关联函数关联函数Web_reg_save_param详解详解Match case :默认情况下边界是Match case的,即检查大小写的。可以取消下面的选项来忽略大小写检查。Binary data:如果需要关联的内容是非ASC 字符的,需要使用该选项。Use # for any
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游戏异常处理与故障排查考核试卷
- 民间非营利组织新旧会计制度有关衔接问题的处理规定2025
- 3.20国际幸福日幸福其实并不遥远幸福可以很简单课件
- 四川省内江市东兴区2025届小升初常考易错数学检测卷含解析
- 湘潭理工学院《新媒体产品设计与项目管理》2023-2024学年第二学期期末试卷
- 雅安市重点中学2024-2025学年初三5月联合调研数学试题试卷含解析
- 江西省2024-2025学年高三1月物理试题含解析
- 辽宁特殊教育师范高等专科学校《心理咨询技术与实务》2023-2024学年第二学期期末试卷
- 台州科技职业学院《管理会计应用指引》2023-2024学年第二学期期末试卷
- 西安航空职业技术学院《生物多样性》2023-2024学年第二学期期末试卷
- 2024春期国开电大本科《现代汉语专题》在线形考(任务1至6)试题及答案
- HJ 1235-2021 入河(海)排污口命名与编码规则-PDF解密
- 公路消防知识培训内容
- JTG F80-1-2004 公路工程质量检验评定标准 第一册 土建工程
- 《1984》读书分享课件
- 肺动脉高压的传统治疗
- 园林植物识别-草本花卉的识别
- 班组长怎样抓好生产管理
- 【湘少版】(三起)三年级英语下册(全册)配套练习
- 装修施工投标书模板
- 《民航概论》全套课件演示课件
评论
0/150
提交评论