LR学习笔记12-测试脚本的增强方法

本次开始步入重点了,好好学习哦。学习内容如下:

--事务

--参数化

--如何验证网页的内容(检查点)

--如何产生调试信息(输出函数)

1、事务

事务就是一系列操作的集合

插入事务方便我们今后的分析

2、参数化

LR的参数化功能是为了更加真实的模拟实际用户操作而设置的。

本次讲解我们以Web Tours座位的位置进行参数化。

准备进行参数化的代码如下:(为了节约位置只截取参数化的那段代码)

web_submit_data("reservations.pl_2",
        "Action=http://127.0.0.1:1080/WebTours/reservations.pl",
        "Method=POST",
        "RecContentType=text/html",
        "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome",
        "Snapshot=t13.inf",
        "Mode=HTTP",
        ITEMDATA,
        "Name=advanceDiscount", "Value=0", ENDITEM,
        "Name=depart", "Value=Denver", ENDITEM,
        "Name=departDate", "Value=08/19/2017", ENDITEM,
        "Name=arrive", "Value=Los Angeles", ENDITEM,
        "Name=returnDate", "Value=08/20/2017", ENDITEM,
        "Name=numPassengers", "Value=1", ENDITEM,
        "Name=seatPref", "Value=Aisle", ENDITEM,
        "Name=seatType", "Value=Coach", ENDITEM,
        "Name=findFlights.x", "Value=44", ENDITEM,
        "Name=findFlights.y", "Value=9", ENDITEM,
        "Name=.cgifields", "Value=roundtrip", ENDITEM,
        "Name=.cgifields", "Value=seatType", ENDITEM,
        "Name=.cgifields", "Value=seatPref", ENDITEM,
        LAST);

我们对座位:Aisle进行参数化的操作。

        "Name=seatPref", "Value=Aisle", ENDITEM, 

参数化的方法。我选择学习大众式的。选择要参数化的Aisle,右键:

设置好Parametre name,选择OK即可。(注意:Properties可以设置参数的属性,具体属性的含义需要一一明确)

参数化完成后代码变为:

        "Name=seatPref", "Value={seat}", ENDITEM, 

属性设置为:

3、如何验证网页的内容(检查点)

运行测试时,经常要验证在返回的页面上是否有特定的内容。此时我们可以通过文本检查点和图像检查点来完成。

我们本例中:添加一个文本检查点来检查登陆成功后是否有"welcome"字样

注意:必须要先启用文本和图像检查点选项,否则我们设置的检查点不会起作用。启动位置在:Vuser--->>>Run-Time Settings--->>>Preferences,勾选上Enable Image and text check即可。

这里强调一下:检查点的设置会影响性能,所以不是逼不得已的情况下,尽量不要使用检查点。

设置检查点的函数为:Web_reg_find(),具体代码为:

    web_reg_find("Text=Welcome",
                 "Search=Body",
                 LAST);

那对于我这种小白来说,还不能快速的直接写出上面的代码,也有办法:Insert--->>>New  Step...点进去;在Services下寻找Web_reg_find()函数。打开如下界面对其进行配置:

4、如何产生调试信息(输出函数)

性能测试中我们经常会需要一些辅助信息来帮助我们进行脚本的调试。这里我们通过演示一个输出函数:lr_output_message来说明如何进行调试。当然LR有许多类似的函数:比如lr_error_message、lr_log_message等。

记住一点:每次运行自己的脚本前,一定要先想一想是不是还有配置没有进行配置。即养成查看、配置Run-Time Settings的好习惯!!!!!

比如在脚本的最后写入:lr_output_message( "检查点怎么个情况,郁闷!!!");即如下:

lr_output_message("检查点怎么个情况,郁闷!!!");

回放脚本时日志会打出:这个日志内容,一般放在最后,这样打印出此内容,即代表脚本成功运行完毕。

时间: 2024-10-08 10:30:01

LR学习笔记12-测试脚本的增强方法的相关文章

python 学习笔记 12 -- 写一个脚本获取城市天气信息

最近在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么能够显示后最重要的就是显示什么的问题了.最容易想到的就是显示时间啊,CPU利用率啊,IP地址之类的.那么我觉得呢,如果能够显示当前时间.温度也是甚好的,作为一个桌面小时钟还是很精致的. 1. 目前有哪些工具 目前比较好用的应该是 weather-util, 之前我获取天气信息一般都是通过它. 使用起来也很简单: (1) Debian/Ubuntu 用户使用 sudo apt-get install weather-util 安装

python基础教程_学习笔记12:充电时刻——模块

充电时刻--模块 python的标准安装包括一组模块,称为标准库. 模块 >>> import math >>> math.sin(0) 0.0 模块是程序 任何python程序都可以作为模块导入. $ cat hello.py #!/usr/bin/python print "Hello,signjing!" $ ./hello.py Hello,signjing! 假设将python程序保存在/home/ggz2/magiccube/mysh/p

Swift学习笔记(15)--下标脚本(Subscripts)

下标脚本可以定义在类(Class).结构体(structure)和枚举(enumeration)这些目标中,使用中类似数组或者字典的用法 1.定义 定义下标脚本使用subscript关键字,语法: subscript(index: Int) -> Int { get { // 返回与入参匹配的Int类型的值 } set(newValue) { // 执行赋值操作 } } 注:newValue的类型必须和下标脚本定义的返回类型相同.与计算型属性相同的是set的入参声明newValue就算不写,在s

Swift学习笔记(12)--数组和字典的复制

Swift中,数组Array和字典Dictionary是用结构来实现的,但是数组与字典和其它结构在进行赋值或者作为参数传递给函数的时候有一些不同. 并且数组和字典的这些操作,又与Foundation中的NSArray和NSDictionary不同,它们是用类来实现的. 注意:下面的小节将会介绍数组,字典,字符串等的复制操作.这些复制操作看起来都已经发生,但是Swift只会在确实需要复制的时候才会完整复制,从而达到最优的性能. 字典的赋值和复制操作 每次将一个字典Dictionary类型赋值给一个

微信小程序开发:学习笔记[5]——JavaScript脚本

微信小程序开发:学习笔记[5]--JavaScript脚本 快速开始 介绍 小程序的主要开发语言是 JavaScript ,开发者使用 JavaScript 来开发业务逻辑以及调用小程序的 API 来完成业务需求. 在大部分开发者看来,ECMAScript和JavaScript表达的是同一种含义,但是严格的说,两者的意义是不同的.ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言, JavaScript 是 ECMAScript 的一种实现.理解 JavaScr

Spring学习笔记--initmethod和构造函数、setter方法的加载顺序

今天学习了一下spring中bean的初始化和销毁,突然想了解一下初始化方法跟构造函数及setter方法注入的执行顺序,记录在此,仅作为学习笔记. 当实例化一个bean时,可能需要执行一些初始化操作来确保该bean处于可用状态.同样地,当不再需要bean时,将其从容器中移除是,我们可以还需要按顺序 执行一些清除工作. package com.zp.chapter2; public class Auditorium { private String name; public void doBefo

[Guava学习笔记]Basic Utilities: Null, 前置条件, Object方法, 排序, 异常

我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3842433.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. Null Guava用Optional表示可能为null的T类型引用. 创建:Optional.of(T)不接受null Optional.fromNullable(T)接受null Optional.absent() 查询:isPresent() get() or(T)如果为null则为T o

《JavaScript高级程序设计》学习笔记12篇

写在前面: 这12篇博文不是给人看的,而是用来查的,忘记了什么基础知识,点开页面Ctrl + F关键字就好了 P.S.如果在对应分类里没有找到,麻烦告诉我,以便尽快添上.当然,我也会时不时地添点遗漏的东西进去 目录 JS学习笔记1_基础与常识 JS学习笔记2_面向对象 JS学习笔记3_函数表达式 JS学习笔记4_BOM JS学习笔记5_DOM JS学习笔记6_事件 JS学习笔记7_表单脚本 JS学习笔记8_错误处理 JS学习笔记9_JSON JS学习笔记10_Ajax JS学习笔记11_高级技巧

[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------