badboy基本操作

 badboy简介

Badboy监控internet explorer的活动,提供录制/回放功能.

录制功能:badboy窗口的顶部显示当前是否处于录制状态,如果点击play按钮,badboy自动关闭录制功能,等到play结束后,可以点击recording按钮,继续录制脚本.

Remark:必须等到上一步的request处理完毕后,才能点击发送下一个request,否则下一个request会作为第一个request的子frame.

创建 suites,tests以及steps

测试与网站的交互过程,可以在逻辑上划分为几个步骤.例如第一个步骤为登陆雅虎邮箱,第二步为浏览收件箱,第三步为发送邮件.每一个步骤可以包含一到多次的网站交互动作.badBoy中点击new step创建新的步骤. .同理,可以创建suites 以及tests.

Badboy回放时,一次执行一个step,每执行完一个step,会显示执行结果,用户必须再次点击play按钮后,执行下一个step.

自动化测试脚本

如果不修改脚本,简单的录制回放并不能满足复杂网站的测试.

复杂网站往往有下面一些测试场景:

A 页面参数唯一性要求,例如:注册页面,需要对用户的注册名进行唯一性校验.

B 测试的server地址不同.

Badboy提供了易用的参数修改方法,仅仅需要双击request或者参数,在弹出窗口内修改.同时badboy提供search&replacing功能来修改脚本中的参数值.

Remark:建议选择linking variables,同一个参数,往往脚本会发送多次,选择linking variables后,badboy会查找所有的与参数有关的值.并统一替换.

 特点与技术

录制模式

Badboy提供两种录制模式:一 request 模式(默认模式) 二 navigation 模式.点击下图N,切换模式.

Request模式具有如下优点:如果测试的网页模版修改了,不影响脚本的回放.如果需要badboy导出脚本到jmeter进行性能测试,必须选择request模式.同时request模式的缺点如下:request模式需要添加大量的断言来检查页面上的item.

Navigation模式将会记录网站交互过程中browser中的元素的点击动作.当回放navigation模式脚本时候,不但回放http request,同时badboy会模拟brower中点击动作.navigation模式的缺点是 :无法使用navigation脚本进行性能测试,因为性能测试引擎运行时候不显示任何用户界面,所以无法执行navigation中模拟点击等动作.

总结:选择navigation模式还是request模式,取决于测试的目的,如果仅仅要求测试功能而不关心界面,则request模式无疑为首选.

2 navigation模式

Navigation录制browser的三种元素如下:

1 链接点击

2 按钮点击

3 其他点击,例如引发javaScript的操作.

表单提交

表单提交是页面中非常重要的部分,有下面一些案例需要注意:

1 如果页面表单中某些参数是依赖于某些参数的输入,比如field B 由javascript根据field A的输入值计算,使用request模式将无法录制正确的参数.

2 request模式下,表单中的所有参数都将发送.包括一些预定义的元素.

自动录制form的方法:点击form中某一field,按"Ctrl-Alt-f"录制form,如果每次提交的form名字不同的话,可以使用正则表达式来表示: logonForm[0-9]{4}

断言

断言是自动化检测的实现手段,badboy提供了两种断言:

1 content 检查

检查页面中是否包含指定的text.断言可以使用正则表达式,比如要检查一个正确登陆的例子,需要检查”welcome [A-z0-9]*/.”

问题:例子,比如”tree frog”在browser中显示,在html中显示为"tree frog",因为badboy测试实际的html source,因此将找不到这个断言.避免这个问题的方法是在page中高亮显示text,并使用easy assertion button.如果使用复杂断言,需要精确匹配html source中的text.

截屏

当测试失败时候,截屏是最有效的方法与开发人员沟通.在断言的属性栏中,选择失败是截屏.badboy会截取失败案例的browser屏

6 timeout

可以为每个request设置timeout时间,右键点击à选择属性à选择play标签,设置timeout时间.

弹出框

使用断言检查弹出框,邮件选择断言,打开"Check against Message Boxes"选项.

8 Badboyjmeter使用注意事项:

1 导出jmeter脚本的时候,jscript不被导出,因为jmeter无内迁browser,jscript元素无法执行.

2 data sources不被导出.

快捷方式

快捷方式如下:

F2 Toggles Record Mode On/Off

F3 Displays the search/replace dialog, or searches if the dialog is already open.

Ctrl-Alt-Right Starts playing from the current item.

Ctrl-Alt-Space Stops Playing

Ctrl+F5 Plays entire hierarchy from the current item. (Note: if focus is inside the browser, IE will intercept as "Refresh").

F6 Single steps (plays next single item in script.)

F8 Shows/Hides Script Tree

F9 Shows/Hides Summary Tab View

F12 Shows/Hides both Script and Summary Views together (gives browser full window space)

Ctrl+Enter Replays the item current item in the script

Ctrl+Shift+Enter Replays the current step in the script

Ctrl+Shift+Left Rewinds the play marker to the previous step.

Ctrl+Alt+Up Moves the play marker to the previous item in script.

Ctrl+Alt+Down Moves the play marker to the previous item in script.

Ctrl+L Displays the lines Server Log File related to the most recent browsing activity.

Ctrl+K Clears all responses from the Script.

Ctrl+J Attempts to find and edit the source code file for the current page and/or frame that has focus in the browser.

Ctrl+Shift+J Attempts to find and edit the source code file for the current page and/or frame that has focus in the browser and also adds the URL for the frame to your script as a Monitored request.

Ctrl+Shift+M Adds URLs for all frames in the current browser as Monitored requests.

Ctrl+D Toggles DOM View On/Off for the active window.

Ctrl+Page Up While in DOM View changes to previous frame in frame list

Ctrl+Page Down While in DOM View changes to next frame in frame list

Ctrl+Alt Changes Record Mode temporarily to Navigation Mode while held down

Ctrl+Alt+N Toggles record mode between Navigation and Request mode

Ctrl+Shift+D Opens the documentation editor for the item currently selected in the Script Tree.

时间: 2024-10-06 00:39:26

badboy基本操作的相关文章

<二叉树的基本操作>

#include<stdio.h> #include<stdlib.h> #include<string.h> #define num 100 #define OK 1 typedef int Status; typedef char DataType; typedef struct node { DataType data; struct node *lchild,*rchild; }BinTNode,*BinTree; Status CreateBiTree(Bin

iOS_UITextField 基本操作

基本操作 UITextField *userNameTextField = [[UITextField alloc] init]; userNameTextField.frame = CGRectMake(30, 100, 220, 50); [self.window addSubview:userNameTextField]; [userNameTextField release]; // 设置样式 userNameTextField.borderStyle = UITextBorderSty

Mongodb入门系列(4)——Mongodb体系结构与客户端基本操作及注意细节

说到Mongodb的体系结构,免不了与关系型数据库做个对比.这里以MySQL为例,我们进行一些比较: 从逻辑结构上对比: MySQL层次概念 MongoDB层次概念 数据库(database) 数据库(database) 表(table) 集合(collection) 记录(row) 文档(document) 在MongoDB中没有行.列.关系的概念,集合中的文档相当于一条记录,这体现了模式自由的特点. 从数据存储结构上对比: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如

Oracle的基本操作-解除用户,赋予权限

一.表的基本操作 1. 用户管理 1.1 初始状态下系统的用户 在系统用户下,执行下面的查询语句可以查看到当前系统的所有用户  select * from dba_users; 1.2 创建一个用户 SQL> create user xp identified by xp; User created. 授予连接数据库的权限:SQL> grant connect to xp; Grant succeeded. SQL> conn xp/xp;Connected. 1.3 解锁一个用户并修改

数据结构中线性表的基本操作-合并两个线性表-依照元素升序排列

#include<iostream> #include<stdlib.h> #define LIST_INIT_SIZE 10/*线性表初始长度*/ #define LIST_CREATENT 2/*每次的增量*/ typedef int ElemType; using namespace std; typedef struct SqList/*线性表的数据结构定义*/ { ElemType *elem;/*线性表基址*/ int length;/*当前线性表所含的元素个数*/ i

【华为技术】VRP平台基本操作

一.显示系统信息 <Huawei>display version 图上所示可以知道VRP平台信息,运行的版本,运行的时间 二.修改和查看设备系统时间参数 1.查看时间 <Huawei>display clock 2.修改系统日期和时间 三.进入系统视图界面 <Huawei>system-view 可以配置接口.路由协议等 四.修改设备名称 五.配置登录标语信息 [R1]header shell information "Welcome to Huawei ro

Mysql查询优化从入门到跑路(三)查询的基本操作

查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行. 优化方式:选择操作下推 目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少) 好处:这样可能减少IO和CPU的消耗.节约内存空间 2.投影操作 对用的SELECT查询的目的列对象 优化方式:投影操作下推 目的:尽量减少连接操作前的列数,使得中间临时关系尽量小(选择操作是使元组的个数尽量少,投影操作是使一条元组尽量少) 好处:虽然不能减少IO(多数数据库存储方式是行存储,元组是读取的最基本

TP框架对数据库的基本操作

数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是对数据的增删改的操作,一步步的讲述一下框架对数据库的操作 想要操作数据库,第一步必然是要:链接数据库 一.链接数据库 (1)找到模块文件夹中的Conf文件夹,然后进行编写config.php文件 我这里是这样的文件路径 (2)打开这个config.php文件,然后找到父类配置文件convention.php文件,将关于"数据库"的部分复制粘贴到config.php配置文件中 1 2 3 4 5 6 7 8 9 /

图形数据库Neo4J的基本操作

1.创建一个节点 1 语法:CREATE (node-name:label-name{Property1-name:Property1-Value,...Propertyn-name:Propertyn-Value}) 2 如: 3 create(江湖流派:明教{name:'张无忌',skill:'九阳真经'}) 2.为两个节点建立关系 1 语法:CREATE(node1:label1)-[relationship-name:relationship-label-name]->(node2:la