检查点,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. 数据流访问 所有应用以流的方式访问数 ...
随机推荐
- react: typescript custom hooks useAsyncTable
define basic data: const SET_QUERY = "SET_QUERY"; const TOGGLE_LOADING = "TOGGLE_LOAD ...
- css的变量教程,更强大的css
当微软宣布 Edge 浏览器将支持 CSS 变量.这个重要的 CSS 新功能,所有主要浏览器已经都支持了.本文全面介绍如何使用它,你会发现原生 CSS 从此变得异常强大. 一.变量的声明 声明变量的时 ...
- 接近8000字的Spring/SpringBoot常用注解总结!安排!
0.前言 大家好,我是 Guide 哥!这是我的 221 篇优质原创文章.如需转载,请在文首注明地址,蟹蟹! 本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide:http ...
- BIOS和CMOS区别
在网上看到一篇关于CMOS的文章,分享一下. 原文地址:http://jingyan.baidu.com/article/c843ea0b51155d77921e4a7a.html BIOS是什么? ...
- mysql-管理命令【创建用户、授权、修改密码、删除用户和授权、忘记root密码】
一.创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 关键参数说明: username - 创建登录用户名, host ...
- CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM
这一节我们总结FM另外两个远亲NFM,AFM.NFM和AFM都是针对Wide&Deep 中Deep部分的改造.上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM ...
- js的call方法
obj1.method.call(obj2,arg1,arg2,arg3...) call方法的作用就是 把obj1的方法放到obj2对象上使用 arg1,arg2....是参数,传给mehtod的哟 ...
- event兼容性解决
event出现undefind错误 解决方法: $('#normalImgDiv').mousemove(function (e) { var e = window.event || e; var p ...
- CultureInfo 类中需要的【区域性名称】查询
2019独角兽企业重金招聘Python工程师标准>>> 提供有关特定区域性的信息(对于非托管代码开发,则称为"区域设置"). 这些信息包括区域性的名称.书写系统. ...
- STL 训练 POJ - 1862 Stripies
Description Our chemical biologists have invented a new very useful form of life called stripies (in ...