发布新日志

  • 用户名和密码测试

    2008-12-01 13:45:48

    一.用户注册

      只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~

      以等价类划分和边界值法来分析

      1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)

      2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)

      3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

      4.必填项分别为空注册

      5.用户名长度大于要求注册1位(边界值分析,取离点)

      6.用户名长度小于要求注册1位(边界值分析,取离点)

      7.密码长度大于要求注册1位(边界值分析,取离点)

      8.密码长度小于要求注册1位(边界值分析,取离点)

      9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)

      10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)

      11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

      12.重新注册存在的用户

      13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)

      14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

      备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~

      二.修改密码

      当然具体情况具体分析哈~不能一概而论~

      实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键.而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

      1.不输入旧密码,直接改密码

      2.输入错误旧密码

      3.不输入确认新密码

      4.不输入新密码

      5.新密码和确认新密码不一致

      6.新密码中有空格

      7.新密码为空

      8.新密码为符合要求的最多字符

      9.新密码为符合要求的最少字符

      10.新密码为符合要求的非最多和最少字符

      11.新密码为最多字符-1

      12.新密码为最少字符+1

      13.新密码为最多字符+1

      14.新密码为最少字符-1

      15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

      16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号

      17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写

      18.新密码与旧密码一样能否修改成功

      另外一些其他的想法如下:

      1 要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功

      2 关注规约中的各种限制,比如长度,大否支持大小写。

      3 考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_“,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。

      4 数值上的长度 之类的,包括出错信息是否合理

      5 特殊字符:比如. / ' " \ </html>  这些是否会造成系统崩溃

      6 注入式bug:比如密码输入个or 1=1

      7 登录后是否会用明文传递参数

      8 访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问


  • (转)软件测试相关的63个国外网站

    2008-11-21 10:36:18

    软件测试相关的63个国外站点

    网址          简介
    http://bdonline.sqe.com/        一个关于网站测试方面的网页,对这方面感兴
    趣的人可以参考
    http://citeseer.nj.nec.com/        一个丰富的电子书库,内容很多,而且提供著
    作的相关文档参考和下载,是作者非常推荐的一个资料参考网站
    http://groups.yahoo.com/group/LoadRunner性能测试工具LoadRunner的一个论坛
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages    提供网站
    上当前发布的软件测试资料列表
    http://satc.gsfc.nasa.gov/homepage.html 软件保证中心是美国国家航天局(NASA)
    投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    http://seg.iit.nrc.ca/English/index.html加拿大的一个研究软件工程质量方面的组
    织,可以提供研究论文的下载
    http://sepo.nosc.mil        内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,
    包括软件工程知识方面的资料
    http://www.asq.org/        是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的
    http://www.automated-testing.com/        一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些
    资源可供下载
    http://www.benchmarkresources.com/        提供有关标杆方面的资料,也有一些其它软件测试方面的资料
    http://www.betasoft.com/        包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html        VASTT研究组织,主要从事通过切片技术、测试技术和
    转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    http://www.cc.gatech.edu/aristotle/        Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试
    方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    http://www.computer.org/        IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算
    机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    http://www.cs.colostate.edu/testing/        可靠性研究网站,有一些可靠性方面的论文资料
    http://www.cs.york.ac.uk/testsig/        约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测
    试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    http://www.csr.ncl.ac.uk/index.html        学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些
    信息和资料,对这方面感兴趣的人可以参考
    http://www.dcs.shef.ac.uk/research/groups/vt/        学校里的一个验证和测试研究机构,有一些相关项目和论文可供
    参考
    http://www.esi.es/en/main/        ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    http://www.europeindia.org/cd02/index.htm        一个可靠性研究网站,有可靠性方面的一些资料提供参考
    http://www.fortest.org.uk/   一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如
    测试自动化、特定缺陷的检查、测试有效性分析等)
    http://www.grove.co.uk/        一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm        NASA可靠性设计实践资料
    http://www.io.com/~wazmo/        Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相
    当大的测试资料,很有价值
    http://www.iso.ch/iso/en/ISOOnline.frontpage        国际标准化组织,提供包括ISO标准系统方面的各类参考资料
    http://www.isse.gmu.edu/faculty/ofut/classes/821-ootest/papers.html         提供面向对象和基于构架的测试方面著
    作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值
    http://www.ivv.nasa.gov/        NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可
    以获得这方面的研究资料
    http://www.kaner.com/        著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有
    用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    http://www.library.cmu.edu/Re-search/Engineer-ingAndSciences/CS+ECE/index.html         卡耐基梅陇大学网上图书
    馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一
    http://www.loadtester.com/        一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、
    论坛以及一些相关链接
    http://www.mareinig.ch/mt/index.html        关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料
    文件下载,包括了测试方面的内容
    http://www.mtsu.ceu/-storm/        软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测
    试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    http://www.psqtcomference.com/        实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举
    行两次
    http://www.qacity.com/front.htm        测试工程师资源网站,包含各种测试技术及相关资料下载
    http://www.qaforums.com/        关于软件质量保证方面的一个论坛,需要注册
    http://www.qaiusa.com/        QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    http://www.qualitytree.com/        一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得
    参考
    http://www.rational.com/        IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测
    试方面一系列的工具,比较全面
    http://rexblackconsulting.com/Pages/publicat-ions.htm
            Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    http://www.riceconsulting.com/        一个测试咨询提供商,有一些测试资料可供下载,但不多
    http://www.satisfice.com/        包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值
    得参考
    http://www.satisfice.com/seminars.shtml        一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James 
    Bach组织,有一些值得下载的资料
    http://www.sdmagazine.com/        软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过
    程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论
    http://www.sei.cmu.edu/        著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类
    关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    http://www.soft.com/Institute/HotList/        提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、
    商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等
    http://www.soft.com/News/QTN-Online/        质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心
    测试和质量发展的人士来说是很有价值的
    http://www.softwaredioxide.com/        包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    http://www.softwareqatest.com/        软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质
    量/测网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍
    http://www.softwaretestinginstitute.com        一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,
    测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛
    http://www.sqatester.com/index.htm        一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有
    一些测试人员社团组织,特色内容是缺陷处理方面的技术
    http://www.sqe.com/        一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测
    试学术会议,并提供一些相关信息资料和课程服务
    http://www.stickyminds.com/        提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源
    http://www.stqemagazine.com/        软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需
    要通过订购获得,内容还是很有价值的
    http://www.tantara.ab.ca/        软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    http://www.tcse.org/        IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,
    可以搜索到测试类型、测试管理、 测试分析等各方面资料
    http://www.testing.com/        测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测
    试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    http://www.testingcenter.com/        有一些测试方面的课程体系,有一些价值
    http://www.testingconferences.com/asiastar/home        著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不
    能错过
    http://www.testingstuff.com/        Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    http://www-sqi.cit.gu.edu.au/        软件质量机构,有一些技术资料可以供下载,包括软件产品质量模型、再工程、软件
    质量改进等
  • LoadRunner脚本关联动态数据的最简单方法

    2008-11-19 14:25:44

    百度或Google一下“如何在 LoadRunner 脚本中做关联 (Correlation)”,你会搜索到在网上相互转载的很经典的一篇文章。洋洋洒洒近6000汉字,像个小百科全书。对于关联Correlation的概念,对web_reg_save_param()方法的参数的解释,你还可以参考那篇文章学习一下。对于如何手动关联动态数据,如果按那篇文档做,你可能需要2小时才能完成一个复杂测试场景的动态数据关联,使用本文档下面介绍的方法,不管多么复杂只需2分钟就能完成关联动态数据。

     

    为什么要关联动态数据呢?举个例子,在对我们平台的工作性能测试时,在待办任务里面选择一条记录执行发送操作,LoadRunner VuGen会详细记录下来流程发送操作的细节,但在回放脚本的时候会有问题。待办任务里面找不到那条记录了,已经发送到下一个环节了。另一个更易理解的例子,在初始化查询页面,选择一条记录进行删除,录下脚本进行回放的时候会出错,记录已经删除了,回放脚本的时候服务器返回的记录不再包含那条记录,再向服务器发送删除那条记录的请求,就报错了。关联动态数据需要我们在脚本中设置一个变量,保存从服务器返回的起标识作用的数据,发送请求的时候使用该变量代替动态数据,这样再回放、反复测试就不会报错了。需要关联的标识性数据一般是各种主键,工作流的发送的例子很复杂,需要对流程编码、环节编码、参与者编码、表单编码等进行关联,下面使用复杂的工作流发送的例子进行演示。

     

    手动关联动态数据的复杂做法是,回放脚本,在Execution LogRecoding Log打出的信息中找需要关联的动态数据及动态数据的左右边界。甚是麻烦,我没怎么看明白。其实每次回放脚本,Recoding Log打印的信息都是一样的,也和录制脚本的时候生成的\data\RecordingLog.txt文件的内容一样。下面直接使用\data\RecordingLog.txt文件,关联动态数据的时候不再需要回放脚本,减少了关联动态数据的工作时间。

    执行同样的操作,先后录制两次脚本保存,比较一下生成的Action.c,注意动态数据不能放在vuser_init.c文件中。自带的WinDiff工具不好使用,推荐使用Beyond Compare工具。不是所有的差异处都要关联的,WEB_URL()等方法的参数列表的先后顺序是没关系的,思考时间当然也可以不同。下图中右边的脚本已经关联过动态数据了,如果是刚录制的两份脚本,右边的idprocessId等也是32位的主键,左右两份脚本的差异一目了然,记下这些动态数据的值。

    以左图id的值:40287ae91c4b7dbb011c4b85e17204da为例,在脚本\data\RecordingLog.txt中查找该值。找其第一次出现的地方,一般在该值的上方会有这样的字样:*** [tid=2258      Action        145] Receiving response from host 192.168.250.105:7001 ( 10/9/2008 17:40:37 )。如下图,记下40287ae91c4b7dbb011c4b85e17204da的左边界:<input type=\"hidden\" name=\"id\" value=\"和右边界:\">。注意看一下这样的左右边界是否唯一。

    在刚才的脚本的文件\data\RecordingLog.txt中小心向上翻动,可以找到这样的字样:                                       *** [tid=2258         Action        145] Recording Function ( 10/9/2008 17:40:37 )

    该字样的下面紧接着是方法web_submit_data("jspformtaskdeal.cmd",……),这个方法在Action.c中是同样存在的,通过这个方法我们可以知道在Action.c的什么地方插入web_reg_save_param()方法。现在我们需要做的就是在脚本Action.c中,方法web_submit_data("jspformtaskdeal.cmd",……)的前面,紧挨着这个方法写上web_reg_save_param()方法用于保存动态数据,其中LBRB分别是刚才记录下的左右边界值,primary是我们起的变量名字。完整的方法如下:

     

             web_reg_save_param("primkey",

                       "LB=<input type=\"hidden\" name=\"id\" value=\"",

                       "RB=\">",

                       LAST);

     

    修改后的Action.c的脚本,见下图:

  • LoadRunner的几个基本概念

    2008-11-19 14:08:14

    1.       事务(Transaction

    事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这样就定义了一个transactionLoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。

       插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在

    脚本中插入不限数量的事务。

    脚本中事务的代码如下:

    lr_start_transaction("事务名");

    /* 中间代码 */

    lr_end_transaction("事务名",LR_AUTO);

    2.    集合点(Rendezvous

    集合点:是一个并发访问的点,在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。

    注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_initvuser_end 中不能插入集合点。集合点函数如下:

    lr_rendezvous("SubmitQueryData");

    3.       IP SpooferIP 欺骗)

       当运行场景时,虚拟用户使用它们所在的Load Generator 的固定的IP 地址。同时每个Load Generator 上运行大量的虚拟用户,这样就造成了大量的用户使用同一IP 同时访问一个网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户IP 来分配资源,这些网站会限制同一个IP 的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner允许运行的虚拟用户使用不同的IP 访问统一网站,这种技术称为“IP 欺骗”。启用该选项后,场景中运行的虚拟用户将模拟从不同的IP 地址发送请求。该选项非常的有用。注意:IP Spoofer 在连接Load Generators 之前启用。要使用IP 欺骗,各个Load Generator 机器必须使用固定的IP,不能使用动态IP(即DHCP)。

     

    LoadRunner主要功能是模拟多用户对系统进行负载压力测试,默认情况下,多用户的生成器都是LocalHost,有些应用需要不同的IP访问,为了模拟真实操作,我们还必须模拟多个IPIP Wizard工具就提供了生成多个ip的功能,IP Wizard是一个单独的程序,我们可以在开始菜单里面找到,你可以添加一个局域网内的IP段。添加后重启,在Win2k下使用Ipconfig/all查看到很多虚拟的IP,最后要在Controller里面选择enable ip spoofer.

     

    4.       Text/Image检查点

     

    对于查询类的脚本,一定要添加检查点,以保证在测试时结果的正确性.因为LR只要检测到网页的响应,就认为是pass而并不管当前网页内容的正确性.在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和WinRunner 中的检查点功能基本上一致,这里就不再作过多的说明。

        举个例子:当我用loadrunner做压力测试的时候,
    它的确能反馈给我各种服务器性能的数据,
    但是在做B/S结构系统的测试的时候,
    去发现如下问题:
    loadrunner
    不能正确判断操作是否成功,
    比如登录,我要测试200人同时登录,
    但是我的login.jsp里面没有正确的关闭数据库的连接,
    导致登录100人后,建立了100个数据库连接,
    101一个人登录的时候,由于超出数据库连接的最大数,
    所以,jsp程序抛出了一个数据库异常。
    但是页面的走向是正确的,所以loadrunner会认为程序是正确执行的,但是事实却并非如此

    5.    LR脚本复用问题

     

        作为一款优秀的负载测试工具,LR的测试脚本有很好的复用性,参数化后的脚本,在应用没什么大的变化的情况下,一直是可以用的。甚至你在A服务器录制的脚本,如果做测试的时候,需要转移到B服务器上,你只需要用查找替换的功能将A服务器的IP地址换成B服务器就可以使用。

     

    6.      理解Correlation(关联)

     

    关联是用来解决脚本中存在的动态数据问题的.7.8,当你回放一次后,LR会自动录找你录制的时候和回放时候的差别,找出动态数据,并作成参数。举个我作的动态数据的例子,当用户登录时,会产生一个Sessionid号,访问结束后,该Sessionid便会失效。我录制的时候,在脚本里面获取到了该Sessionid,但当我再回放的时候,这个Sessionid已经无效了,所以,我需要把这个Sessionid作为一个动态数据,当我一登录的时候,便获取一个新的有效的Sessionid,然后通过web_reg_save_param("WCSParam_Text2",
    "LB=ProcessID=",
    "RB=;",
    "Ord=1",
    "RelFrameId=1",
    "Search=body",
    LAST);

    函数把它保存下来。那么后面用到的页面中就可以调用WCSParam_Text2这个参数使用这个新的Sessionid号。这是个动态数据很典型的例子,

    web_submit_data("w_onload_check.asp",
    "Action=http://gsserver3/cwbase/sys/userlogin/w_onload_check.asp",
    "Method=POST",
    "TargetFrame=",
    "RecContentType=text/html",
    "Referer=http://gsserver3/cwbase/sys/userlogin/index.asp",
    "Snapshot=t3.inf",
    "Mode=HTML",
    ITEMDATA,
    "Name=hdclentip", "Value=chenjing", ENDITEM,
    "Name=hdProcessID", "Value=F8E5ACCD372845C38C7E1981A342F703", ENDITEM,
    "Name=selInstanceid", "Value=T01", ENDITEM,
    "Name=TxtUserID", "Value={RYBH}", ENDITEM,
    "Name=TxtPassword", "Value=cwpass", ENDITEM,
    "Name=Txtkjdate", "Value=2003.01.06", ENDITEM,
    "Name=selInstancetxt", "Value=
    性能测试(中型数据库)", ENDITEM,
    "Name=selInstance", "Value=T01", ENDITEM,
    LAST);
    web_url("loginpage.aspx",
    "URL=http://gsserver3/cwbase/sys/menushow/loginpage.aspx?ProcessID=
    {WCSParam_Text2}",
    "TargetFrame=",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t4.inf",
    "Mode=HTML",
    LAST);

    左边界,右边界到底是个什么概念,

    理解web_reg_save_param函数,

    int web_reg_save_param (const char *ParamName, <List of Attributes>, LAST);

     

    第一部分:参数名字,用双引号括起,逗号分开;

    第二部分:List of Attributes,包括:LBRBRelFrameIDOrdSearchSaveOffsetSaveLen等,

    第三部分:LAST,结束标志。

    LB是左边界,RB是右边界,比如说吧,程序中有这么一个赋值,ProcessID =A53625E18440FCE81F26DCE712E65EBA;如果ProcessID的值是动态的,我想使用动态变量,那我设定查找左边界为LB=ProcessID=,右边界为;的字符,如果找到了,就替换成变量.

    Search是指查找范围,就是说在哪里查找这些值,可以取这样几个值,我们一般设为ALLBody等即可。

    Headers (Search only the headers),

    Body (search only Body data, not headers),

    Noresource (search only the html body, excluding all headers and resources),

    ALL (search Body and headers). The default value is ALL.

     

    RelFrameID: The hierarchy level of the HTML page relative to the requested URL.一般取1

     

    ORD: This parameter, also known as Instance, indicates the ordinal or instance of the match. 一般取 1

    LR7.8已经为用户定义好了很多类型的关联,我们可以自己定义New rule,不过我在录制脚本的时候一般把系统的那些都关掉,定义自己的,只是有的时候,它不能自动关联,就干脆手工作了。需要关联的地方:一般是在有主键,不允许记录重复,和一些主程序中传递过来的参数,在后面要用到等情况才使用关联的,你可以先执行一遍,如果有些地方不允许重复可参数值无效,就会出错的,根据错误提示你可以判断出来,就知道需要关联了。一般需要关联的不多,我现在遇到的就是进程号,以及表的主键。

     

  • 性能测试经验总结

    2008-11-17 14:15:04

    第一步:计划测试

    1、明确压力点,根据压力点设计多少种场景组合

    2、把文档(包括多少种场景组合、场景与场景组合条件的对应表)写好

    3、如果监测UNIX机器,在被监测的机器需要安装监测Unix的进程

    4、让开发人员帮助我们准备测试数据或他们写相关的文档我们来准备数据

    5、让开发人员做一个恢复数据的脚本,以便于我们每次测试的时候都能够有一个相同的环境

    6、针对每一个模块包括四个子文件夹:如模块A下包括“脚本”“场景”“结果”“图表” 四个子文件夹,每个子文件夹储存对应的文件,如下表所示:

     

    模块名

    场景名

    结果名

    图表名

    用户层障碍

    1场景

    1场景0

    1场景0

    1场景1

    1场景1

    1场景2

    1场景2

    2场景

    2场景0

    2场景0

    2场景1

    2场景1

    2场景2

    2场景2

       其中:结果名“1场景”是在场景中的“Results Setting”中设置的,具体的设置见“建立场景”部分,这里也可以有另外一种方法:在打开模板设置,如下图1:

      

    选中“Automatically save the session as:”并且在“%ResultDir%”后面填写你想保存的文件名,当你打开某个lrr文件时,系统自动在当前目录中生成一个文件保存分析图表,如下图2所示:

     

    第二步:生成测试脚本

    1、把登陆部分放到“vuser_init”部分,把需要测试的内容部分放到“Action”部分执行;但是如果是模拟多个用户登陆系统,则要把登陆部分放到Action部分来实现

    2、录制脚本后,想查询某个函数的原型,按“F1”键

    3、确认脚本中哪些参数是需要进行参数化的(最好能可以和开发人员一起确认)

    4、在脚本参数化时把函数web_submit_data()中的ITEMDATA后面的数据参数化,因为这些数据是传递给服务器的,当然也可以把一个函数中的所有相同变量都替换掉

    5、脚本中无用的部分用“/*”“*/”“//”注释掉,但最好不要删除

    6、调试脚本遵循以下原则:

       确认在VUSUSI(单用户单循环次数single user & single iteration

    确认在VUSUMI(单用户多循环次数single user & multi iteration

    确认在controllerMUSI(多用户单循环次数multi user & single iteration

    确认在controllerMUMI(多用户多循环次数 multi user & multi iteration

    7、事务的名称取的有意义便于事务之间的区分,把所有的事务名都记录在一起,便于在测试结果概要中区分它们,这要写成一个表:某次测试有哪些模块,每个模块中有哪些事务(见对应的“关系表”)

    8、 Parameter List”中可以选择参数类型“Random Number”,使某一个参数取设定的范围内的随机值

    第三步:建立场景

    1、  把场景名称编号,并制定出一份场景名称和场景条件组合的对应表。比如,场景m对应于“某一模块_xxvu _zmachine(见“关系表”中的例子)

    2、  根据上面的对应表把场景设置好,需要设置的要素如下:总体多少个用户、分多少个组、每个组有多少个用户、分几台机器运行、每个脚本迭代多少次、是否回放think time时间、检查Parameter List中每个参数设置是否正确、参数从表中取值间隔是否正确、是否选中“Initialize all Vusers before Run

    3、  测试结果应该保存为“m场景0m场景1,…

    4、  把虚拟用户分散到几台机器上和在一台机器上面都要进行测试,因为有可以效果不同

    5、  场景中如果有需要改动的地方,必须新建一个场景(建议使用“另存为”,然后再修改结果文件名,再选择相应的脚本),并把场景按顺序编号,先维护好场景与场景组合条件的对应表,以便以后的查找,并且在结果 Results Setting”中设置的结果名与场景名相同。建议在“Results Setting”中选中“Automatically create a results directory for each scenario executeon”让它每次自动累加,不建议选中“Automatically overwrite existing results directory without prompting for confirmation”,因为我们不要覆盖掉以前的测试结果,把它保存下来以便有个根据。

    6、  需要注意的地方:当在“Parameter List”中的“Select next row”选中“Unique”时,如果再在“Edit Schedule\Schedule by Scenario\Duration”中选中第二项“Run for XX after the ramp up has been completed”时系统就会报错,提示“Unique”类型不相符。

    7、  在“Run-time Setting”设置中,“General”中的“Pacing”非常有用,可以设置每次迭代之间相隔多少时间,也可以是随机的取值

    8、  建议:把Parameter List和“Run-time Setting”中的所有设置都搞熟悉,这样便于以后对脚本和场景进行设置

    9、  设计“Parameter List”时的小技巧如下图3:即在“Allocate X values for each Vuser”时,尽量把它的间隔在数据容许的范围内取大些,这样可以做从一次迭代到最大值迭代,而且对脚本没有什么影响

    10、当一个脚本中有多个事务,在事务前面增加集合点时需要一点技巧。或者我们把脚本复制几个,或者我这样做:测试前面的事务的压力时,把后面的事务前的集合点设置为不激活状态;在测试后面的事务的压力时,把前面的事务的集合点设置为不激活状态,另外最好不选中Initialize all Vusers before Run,具体参见Controller中的“Scenario/Rendezvous”,及用户手册(F1)

    11、把持续时间从最后60秒改为整个场景的时间,右键单击某个图,选择“Configue”,修 Graph Time即可

    12、每次从一个场景修改后保存为另一个场景时别忘记把结果保存文件名修改相对应的文件名。在设置结果保存文件名时有一个技巧,如下图4:如果你打开这个窗口时,点击确定则系统会默认以“4场景2”为基点向后加“4场景20”“4场景21”等等,但是如果你把结果文件名后面的数据去掉,改为“4场景”,点击确定后,系统会自动搜索是以“4场景”开头的文件名,并在它的后面继续增加,比如把它改为“4场景”时,下次结果保存在“4场景3”中。而且他在搜索的时候搜索以“4场景”开头的文件名,从0开始,有的话就不取代而跳过,没有的话就取代。

    第四步:运行场景

    1、  运行场景前需要注意的事项:每个组的虚拟用户数、迭代次数、think time、参数化时的取值间隔、执行恢复数据的脚本、确认虚拟机的LoadRunner Agent Service打开

    2、  如果监测Unix,运行场景前需要启动监测Unix进程,启动的命令“rpc.rstatd”、查看这个进程是否启动的命令“rpcinfo –p

    3、  运行前使Generator机器处理Ready状态

    4、  确认被监测的机器已经连接上去,并且添加自己所需要的计数器

    5、  运行之前一定要确认系统中压力点的数据量是多少

    6、  确认以上都正确时再运行测试场景

    第五步:监视场景

    1、打开Passed Transactions”或“Failed Transactions”,可以随时观察到事务的运行状态

    第六步:分析测试结果

    1、  打开Analysis后,把经过数据处理的结果图表保存到“图表”文件夹,并且文件名和场景名、结果名相同,这样便于以后的查阅。也可以省去每次进行数据处理的时间。

    2、  可以通过点击界面上的View Run Time Setting”可以看到此场景运行时的一些场景设置

    3、  在关联图表时可以自动调节每个元素的比例,点击右键,选择"view measurement trends"即可

    4、  每次测试结束后确认所做的操作是正确的,确认正确后再分析结果

    5、  在结果文件夹中为每个场景建立一个文档,把每次运行时的情况记录下来以便于写测试报告,尤其运行错误的原因记录下来,并把开发人员所做的修改也记录下来以便知道开发人员做了些什么修改

    6、  在分析运行结果时可以把几个结果合在一起进行比较,打开如下“Cross with Result…”如下图5

    <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso

  • TD的使用

    2008-11-17 13:56:22

    TestDirector的测试管理包括如下四个阶段:

         

    需求定义(Specify Requirements):

    分析应用程序并确定测试需求。

    测试计划(Plan Tests):

    基于测试需求,建立测试计划。

    测试执行(Execute Tests):

    创建测试集(Test Set)并执行测试。

    缺陷跟踪(Track Defects):

    报告程序中产生的缺陷并跟踪缺陷修复的全过程。

    贯穿测试的每一个阶段,你能够通过产生详细的报告和图标对数据进行分析。

    .需求定义

    分析应用程序并确定测试需求。

         

    定义测试范围(Define Testing Scope):

    检查应用程序文档,并确定测试范围——测试目的、目标和策略。

    创建需求(Create Requirements):

    创建需求树(Requirements Tree),并确定它涵盖所有的测试需求。

    描述需求(Detail Requirements):

    为“需求树”中的每一个需求主题建立了一个详细的目录,并描述每一个需求,给它分配一个优先级,如有必要的话还可以加上附件。

    分析需求(Analyze Requirements):

    产生报告和图表来帮助你分析测试需求,并检查需求以确保它们在你的测试范围内。

    .测试计划

    基于已定义的测试需求,创建相应的测试计划。

         

    定义测试策略(Define Testing Strategy):

    检查应用程序、系统环境和测试资源,并确认测试目标。

    定义测试主题(Define Test Subject):

    将应用程序基于模块和功能进行划分,并对应到各个测试单元或主题,构建测试计划树(Test Plan Tree)。

    定义测试(Define Tests):

    定义每个模块的测试类型,并为每一个测试添加基本的说明。

    创建需求覆盖(Create Requirements Coverage):

    将每一个测试与测试需求进行连接。

    设计测试步骤(Design Test Steps):

    对于每一个测试,先决定其要进行的测试类型(手动测试和自动测试),若准备进行手动测试,需要为其在测试计划树上添加相应的测试步骤(Test Steps)。测试步骤描述测试的详细操作、检查点和每个测试的预期结果。

    自动测试(Automate Tests):

    对于要进行自动测试的部分,应该利用MI、自己或第三方的测试工具来创建测试脚本。

    分析测试计划(Analyze Test Plan):

    产生报告和图表来帮助你分析测试计划数据,并检查所有测试以确保它们满足你的测试目标。

    .测试执行

    创建测试集(Test Set)并执行每一轮测试。

         

    创建测试集(Create Test Sets):

    在你的工程中定义不同的测试组来达到各种不同的测试目标,他们可能包括,举个例子,在一个应用程序中测试一个新的应用版本或是一个特殊的功能。并确定每个测试集都包括了哪些测试。

    确定进度表(Schedule Runs):

    为测试执行制定时间表,并为测试员分配任务。

    运行测试(Run Tests):

    自动或手动执行每一个测试集。

    分析测试结果(Analyze Test Results):

    查看测试结果并确保应用程序缺陷已经被发现。生成的报告和图表可以帮助你分析这些结果。

    .缺陷跟踪

    报告程序中产生的缺陷并跟踪缺陷修复的全过程。

         

    添加缺陷(Add Defects):

    报告程序测试中发现的新的缺陷。在测试过程中的任何阶段,质量保证人员、开发者、项目经理和最终用户都能添加缺陷。

    检查新缺陷(Review New Defects):

    检查新的缺陷,并确定哪些缺陷应该被修复。

    修复打开的缺陷(Repair Open Defects):

    修复那些你决定要修复的缺陷。

    测试新构建(Test New Build):

    测试应用程序的新构建,重复上面的过程,直到缺陷被修复。

    分析缺陷数据(Analyze Defect Data):

    产生报告和图表来帮助你分析缺陷修复过程,并帮助你决定什么时候发布该产品。

    .使用工程数据库

    当你创建一个TestDirector工程后,你需要存储和管理TestDirector自身产生和连接的数据库。每一个工程都支持通过数据库来存储工程信息。

    TestDirector是一个知识库,它存储着需求、测试、测试集、测试个案(Test Run)、工程文档和定制信息。为了应用程序测试工程能够正常工作,TestDirector需要持续不断地访问这些数据。

    可以使用下面的数据库应用软件来存储和管理TestDirector信息:

    Microsoft Access
    Sybase (仅适用于TestDirector企业版)
    Microsoft SQL (仅适用于TestDirector企业版)
    Oracle(仅适用于TestDirector企业版)
    关于创建和管理TestDirector的更进一步信息,请参考《TestDirector管理员手册》。
  • 教你怎样在XP上安装IIS5.1(收集)

    2008-11-13 17:54:06

        好多朋友都抱怨在XP上安不上IIS5.1,那是因为你的安装方法不对。下面我来说说具体的安装方法。一共有三种方法,现在我来说最简单的第一种方法:
      在你安装系统的时候,当然我说的是XP系统,安装完成后,不要取出光盘,打开-开始-控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾{就是将它勾选上},直接安装,很容易就把IIS安上了。不过前提是你的光盘一直不要取出。
      现在我来说第二种方法: 
                   第一、在网上下载IIS5.1。下载地址 http://www.51touch.com/Article/Download/Relate/122347143.htm  第二、下载好后,记住你下载的物理路径,最好是直接下载到你的根目录下,比方说直接下载到D盘。不要下载到文件夹里。
      第三、IIS5.1是个压缩文件,我们就把它解压到当前文件夹,
    这时我们会看到windowsXP IIS_setup这个文件夹,鼠标双击打开这个文件夹,我们会看到
    这个图标,鼠标双击打开它,我们会看到
    点安装,安装完成后就会出现我们想要看到的东西了
    这就是我们要安的IIS5.1

                第四、打开-开始-控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾{就是将它勾选上}
    然后点下一步。
      第五、这是最主要的一步,这时电脑提示你插入光盘,我们不要管它,在弹出的对话框的浏览项鼠标点击下拉菜单,找到你下载IIS5.1的地方,比方说D盘,然后再点windowsXP IIS_setup这个文件夹,再点IIS5.1,找到以后点对话框上的确定,这时电脑开始安装IIS、可是它只安装到现两三格的时候就停下来不安了,因为找不到文件了。你不用害怕,我们继续点浏览,把放文件的地方找出来,比方说D盘,然后电脑继续安装,这样的情况大概持续四次,真到安上为止,这时你的IIS5.1就真正的安装在你的电脑里了。注明一下,IIS6.0和IIS5.1的安装方法相同。
      第六、打开-开始-控制面板-性能和维护-管理工具-Internet信息服务。把它发送到你的桌面上。
      这时你就可以用你自己的电脑做服务器,上传你的网页了。
      关于IIS5.1的设置,有问题的请发电子邮件到 779949@163.com
                或者联系我的QQ 490241020 另附 怎样在XP上安装IIS6.0
                这是第三种方法,仅供参考。
      在运行中输入 C:\Windows\inf\sysoc.inf                 打开sysoc.inf这个文件,在这个文件中找到 [Components] 在里面加上 iis=iis2.dll,Ocentry,iis2.inf,,7 之后保存并关闭。下载安装IIS文件,解压到任意盘符的根目录下,比如D盘,然后在运行中输入cmd然后点回车,输入
    EXPand d:\iis51\iis.dl_c:\Windows\system32\setup\iis2.dll 点回车

    再输入 EXPand d:\iis51\iis.in_c:\Windows\inf\iis2.inf  然后打开-开始-控制面板-添加/删除程序-添加删除Windows组件-在Internet信息服务上画对勾{就是将它勾选上}依上安装。另附怎样用自己的电脑做服务器  

  • 测试路上

    2008-10-30 09:57:37

    今天满怀信心的开通我的空间了,目的是走好测试的每一步.从现在起,我要认真对待测试中的每一个细节,积累我的测试知识.

数据统计

  • 访问量: 4158
  • 日志数: 19
  • 建立时间: 2008-10-30
  • 更新时间: 2009-03-16

RSS订阅

Open Toolbar