检查点,Block块,参数化
l 检查点:每次运行时检查服务器返回的数据是否正确,节省人工检查的时间(压测中数据传输次数过多,页面可能会产生传递混乱)
l 检查点函数:web_find
l 检查点类型:文本检查点;图片检查点
l 检查点目的:验证测试过程中步骤是否正确执行(检查事务是否被正确的执行)。如飞机订票系统的登陆模块,判断用户是否登陆成功
l 插入检查点:
1、将视图模式设为Tree view视图模式

2、在要插入检查点的位置右击,选择插入在前面还是后面

3、选择要插入检查点的类型和插入检查点函数
检查点的类型:Test check和image Check
检查点函数:web_find 和web_reg_find


(1)web_find()函数:在页面中查找相应内容;只能在html模式录制的脚本进行查找;必须写在所查找内容所在页面的后面;不返回查找结果;执行效率低
(2)web_reg_find()函数:在缓存中查找相应内容;必须写在要查找内容的请求之前;通过SaveCount判断所查找的内容出现的次数来判断事务是否执行成功
6.2 Block(块)技术
一个脚本中有多个业务(如登陆、注册、查询),每个业务执行的次数不同时使用block技术
(1)Vuser菜单--Run time Settings--Run logic
(2)选择Run ,插入一个block:点击insert Block按钮
(3)点击新增的block,在弹出的对话框中选择要添加的action
(4)根据需要建立多个block,并在里面添加action
(5)将block外面的action删除
(6)设置Block Properties,双击block在弹出的对话框里设置:Sequential按输入的次数执行,Random是指block内的各个action执行的百分比
(7)一个action的迭代次数=所在block执行次数*Number of Iterations

6.3 参数化技术
参数化:对于脚本中的一些常量,使用参数来代替。
参数的数据源可以用文本文件也可以用数据库。
参数化过程体现了数据驱动的思想,即测试脚本与测试数据分离的思想;脚本体现流程,数据体现测试案例
参数化原因:(1)减少脚本数量;(2)更接近真实客户业务
需参数化的条件:
(1)日期时间(如订票,20号写的脚本订票日期为20号之后,25号之后再运行脚本的订票日期错误);
(2)唯一性约束(数据库主键唯一性约束,如注册用户的ID为主键时,不能多次注册同一个用户ID)
(3)数据约束(要提交的业务数据必须每次都不同)
(4)缓存数据约束(每次查询条件一致时,数据存储在缓存中,直接从缓存取,不会去内存中重新取,测出来的时间不准确)
如何创建参数:
脚本中选中要参数化的常量右击-Select Create Parameter
参数类型属性:(1)date/time日期时间参数类型(2)Group name(组名)参数类型(3)Interation Number(迭代编号参数类型)(4)负载发生器名参数类型(5)随机数参数类型(6)Unique Number唯一数参数类型

数据文件
设置参数的数据源
修改参数文件的路径
将绝对路径改为相对路径
导入数据
参数化过程应注意:
① 参数化文件尽可能少,应为参数是放在内存中的
② 参数化文件与脚本分离
③ 参数文件为相对路径(防止换电脑执行脚本时路径找不到)
④ 参数从历史数据库中获得,更具有真实性
⑤ 参数类型的选择
⑥ 参数的数据由事务决定
检查点,Block块,参数化的更多相关文章
- iOS之block块
Block块. 1.声明Block int (^myBlock)(int n) = ^(int num) 类型 (^名称)(需要传的参数)= ^(参数) 2 __block 变量 在block块中修改 ...
- Linux内核系列之Block块层(一)
.Block块层入口函数为 genhd_device_init(),先对该函数开始分析: 函数实现源码: static int __init genhd_device_init(void) { ...
- 关于block块使用的6点注意事项
对于刚学习OC新伙伴,block块一直都是一个比较纠结.比较难懂的知识点,不过,在使用一段时间后,就会感觉很酸爽.block块的原理及使用我就不再赘述,网上有很多这方面的资料.我个人使用这么长时间以来 ...
- 定义block块
一: 工程图 二: 代码区 AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <U ...
- Objective-C中的block块语法
#import <Foundation/Foundation.h> /* OC不同于Java C++ 它没有字符串对象 只有NS对象 NS就是乔布斯第一个公司NeXt的类集合 被收购之后才 ...
- 初探swift语言的学习笔记(闭包 - 匿名函数或block块代码)
很多高级语言都支持匿名函数操作,在OC中的block也为大家所熟悉,然面在swift里好像是被重新作了一个定义,不叫匿名函数,或 block了,而叫闭包(closure).下面配合代码来理解一下swi ...
- iOS开发之使用block块进行数据遍历的方法
看了一篇文章,发现遍历数组.字典中的数据时,除了使用for循环外,还可以使用block块进行操作,瞬间感觉iOS的语言代码确实有点高大上的感觉,下面就简单的介绍一下这个方法. 首先是最基本的运用形式, ...
- ARC中block块作为属性的使用笔记
ARC中block块作为属性的使用笔记 block较难理解,根据在内存中的分布情况就分为3种类型,根据使用的情形又分为很多很多种.虽然用起来容易,但使用不当会造成内存泄露,虽然都是这么说,但你真的研究 ...
- Linux_僵尸进程、挂载、block块、inode号
僵尸进程: 基本概念: 进程分为父进程和子进程 父进程一死 子进程都会死 杀死主进程的时候 子进程也会被杀死 僵尸进程:主进程被杀死了 但是子进程还活着 子进程不会占用cpu但还是会占着内存 ...
- hdfs深入:03、hdfs的架构以及副本机制和block块存储
HDFS分布式文件系统设计目标 1. 硬件错误 由于集群很多时候由数量众多的廉价机组成,使得硬件错误成为常态 2. 数据流访问 所有应用以流的方式访问数 ...
随机推荐
- C# 基础知识系列- 14 IO篇之入门IO
0. 前言 在之前的章节中,大致介绍了C#中的一些基本概念.这篇我们将介绍一下C#的I/O操作,这将也是一个小连续剧.这是第一集,我们先来简单了解一下C#中的I/O框架. 1. 什么是I/O I/O ...
- CF1324 --- Maximum White Subtree
CF1324 --- Maximum White Subtree 题干 You are given a tree consisting of \(n\) vertices. A tree is a c ...
- Leetcode PHP题解--D75 706. Design HashMap
2019独角兽企业重金招聘Python工程师标准>>> D75 706. Design HashMap 题目链接 706. Design HashMap 题目分析 自行设计一个has ...
- Visual Studio Code mac OS 安装 中文简体语言包
先下载中文简体语言包 官网 https://marketplace.visualstudio.com/search?target=VSCode&category=Language%20Pack ...
- Web全栈AngularJS
百度云盘下载 AngularJS是人类首个大规模使用的MVC框架,能够帮助程序员将绝大部分精力集中在核心业务逻辑上,从而大幅提高开发效率. 阶段2:Controller Controller是Angu ...
- 杭电的题,输出格式卡的很严。HDU 1716 排列2
题很简单,一开始写代码,是用整数的格式写的,怎么跑都不对,就以为算法错了,去看大佬们的算法STL全排列:next_permutation(); 又双叒叕写了好几遍,PE了将近次,直到跑了大佬代码发现, ...
- 一个简单的wed服务器SHTTPD(7)———— SHTTPD内容类型的实现
//start from the very beginning,and to create greatness //@author: Chuangwei Lin //@E-mail:979951191 ...
- LeetCode 56,57,60,连刷三题不费劲
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的第34篇文章,刚好接下来的题目比较简单,很多和之前的做法类似.所以我们今天出一个合集,一口气做完接下来的57.5 ...
- React Hooks总结
Hook 前言 什么是Hook 自从 16.8 版本开始,hooks 的出现使得你可以在不编写 class 的情况下使用状态管理以及其它 React 的特性. 那么在 React Hooks 出现之前 ...
- 快速幂 递归&&非递归 模板
一.递归版快速幂 inline int qpow(int x,int y,int p){ if(y==0) return 1; int z=qpow(x,y>>1,p); z=1ll*z* ...