Robot压力测试实例.doc_第1页
Robot压力测试实例.doc_第2页
Robot压力测试实例.doc_第3页
Robot压力测试实例.doc_第4页
Robot压力测试实例.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Robot压力测试实例看到很多人在要这个,找到一篇,转过来给大家看看文章的出处没有看到作者的名字,非常抱歉脚本与被测程序有关,直接运行这个脚本是不能回放成功的(因为你没有脚本运行的环境)文章如下第一步:设置Robot RobotToolsSession Record options,Method选择API Recorder,Generater Filtering中Filtering选择Auto filtering,Select protocols只选择Socket;第二步:录制VU脚本 在启动的Start Application窗口中,Executable输入被测程序的客户端程序的路径和文件名,Working Directory中输入被测程序的工作路径,Program Arguments如果没有就空着。被测程序程序启动后,执行需要的操作然后关闭程序,停止录制脚本,Robot会自动生成脚本。脚本示例:#include push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */push Think_def = LR;Min_tmout = 120000; /* Set minimum Timeout_val to 2 minutes */push Timeout_val = Min_tmout;SERVER = sock_connect(123001, SERVER:2000); INFO SERVER SERVER=192.168.1.12; /*1*/set Server_connection = SERVER;push Think_avg = 0;sock_send 45645651300000000001cc00f701000002000000c3330100000000000000000001000000 00000000000sdgsdfgfhjghjjdfhjhkjgfhjgfjjk000000000000hh0000000000000000000000 000000000000000000000000000000000000000000000100g22220012313546545465431 45641313000000000000000000000000000000000000;sock_nrecv 123002 200;sock_send 1321321656548745215599154654456546122132112313210000000000000001000000 00000000021321215665654548879654654655562000000000000000000000000000000 00000000000000000000000000000000000000000000012131132321213212111323213 123110000000Z2;sock_recv 123003 $; /* 50 bytes */sock_disconnect(SERVER);pop Think_def, Think_avg, Timeout_val, Timeout_scale;这个脚本如果不能正确回放,可以将将sock_recv 123003 $; /* 50 bytes */改为sock_nrecv 123003 50; /* 50 bytes */第三步:设置Suite,回放脚本回放录制的脚本,Testmanager会自动创建Suite,如下所示: 默认脚本运行一次,为了长时间运行,修改增加脚本的运行次数(最大32767),在Run properties中Iterations中设置。然后运行Suite,在Run Suite窗口中的“Number of users”上输入虚拟用户数,如200。 第四步:观察被测服务程序的运行情况,查看有无异常。压力测试需要连续、高负载运行不少于72小时,运行完成服务程序需要无资源泄漏、无报错、无异常退出以及其他不正常情况。数据库并发测试数据库并发测试的必要性:1、 与数据库连接的服务程序采用多线程同时开启多个数据库连接;2、 与数据库连接的服务程序单线程,但是同时开启多套服务程序; 以上两种情况均会产生对数据库的并发访问操作。数据库并发访问会导致数据库数据错误、数据库死锁等故障,需要在测试阶段进行充分测试。数据库并发测试测试方法:1、 利用测试工具模拟多个最终用户进行并发测试; 这种测试方法的缺点:最终用户往往并不是直接连接到数据库上,而是要经过一个和多个中间服务程序,所以并不能保证访问数据库时还是并发。其次,这种测试方法需要等到客户端程序、服务端程序全部完成才能进行;2、 利用测试工具编写脚本,直接连接数据库进行并发测试; 这种方法可以有效的保证并发操作,而且在数据库访问程序完成即可测试,可以大大缩短测试时间,而且测试效果更好。下面通过一个演示程序,演示使用Robot使用第二种测试方法进行数据库的并发测试:第一步:创建演示程序:打开SQL SERVER查询分析器,在SQL SERVER测试数据库中执行下列脚本(脚本执行操作:创建表testtable,并插入一条记录;创建存储过程test):if exists (select * from dbo.sysobjects where id = object_id(Ndbo.Test) and OBJECTPROPERTY(id, NIsProcedure) = 1)drop procedure dbo.TestGOif exists (select * from dbo.sysobjects where id = object_id(Ndbo.testtable) and OBJECTPROPERTY(id, NIsUserTable) = 1)drop table dbo.testtableGOCREATE TABLE dbo.testtable ( testid int NULL , counts int NULL ) ON PRIMARYGOinsert into testtable (testid,counts) values (1,0)GOSET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOCREATE Procedure dbo.Testas declare count int begin tran TEST select count=counts from testtable where testid=1 update testtable set counts=count+1 if (error 0) begin rollback tran TEST end else begin commit tran TEST endGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO第二步:创建测试脚本:在Robot中新建VU脚本,输入以下内容:#include push Timeout_scale = 200; /* Set timeouts to 200% of maximum response time */push Think_def = LR;Min_tmout = 120000; /* Set minimum Timeout_val to 2 minutes */push Timeout_val = Min_tmout;ser=sqlconnect(server,sa,888,192.168.0.99,sqlserver);set Server_connection = ser;push Think_avg = 0;sync_point logon;sqlexec sql_1000 testdb.test;sqldisconnect (ser);说明:ser=sqlconnect(server,sa,888,192.168.0.99,sqlserver) sa为数据库用户名,888为sa密码,192.168.0.99数据库IP地址 以上三项按实际的测试数据库设置更改,其他两项不用修改sqlexec sql_1000 testdb.test testdb为新建存储过程test所在的数据库,按实际的数据库修改第三步:执行测试:运行上一步创建的脚本(运行时自动创建Suite),在Run Suite窗口中的“Number of users”上输入20。运行完脚本,打开数据库查看counts的数值。把counts值改为零多次运行脚本,观察每次运行后counts的结果。测试说明(1)、测试示例程序的目的是,存储过程test每执行一次,表testtable中的counts字段增加一;(2)、第三步的测试可以发现每次执行后counts结果并不相同,而且不等于20,这说明这个程序是在并发时是问题的。(3)、将存储过程中的select count=co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论