测试工具之 自动化测试号好处
凌雪 2018-07-31 来源 :网络 阅读 975 评论 0

摘要:本文将带你了解测试工具之 自动化测试号好处,希望本文对大家学测试工具有所帮助

本文将带你了解测试工具之 自动化测试号好处,希望本文对大家学测试工具有所帮助


较新的版本 latest version
   
     目录
     
    第一章
    项目技术背景介绍..
    4
    1.1
    项目背景..
    4
    1.2
    技术背景..
    4
    1.3词汇解释..
    4
    第二章
    测试方案的设计..
    5
    2.1
    需求分析..
    5
    第三章
    测试工具的设计与实现..
    5
    3.1
    测试工具的设计..
    5
    3.2
    测试工具的实现..
    7
    3.2.1 Linux服务器的远程控制..
    7
    3.2.2
    应用程序的启动与停止..
    8
    3.2.3
    测试时间的控制..
    9
    3.2.4
    本地命令的执行..
    9
    3.2.5
    远程文件的拷贝..
    10
    3.2.6
    测试结果写入Excel
    10
    3.2.7
    多个测试用例的执行..
    12
    第四章
    测试工具的使用..
    12
    4.1
    用例脚本的编写..
    12
    第五章
    使用总结..
    14
    5.1
    常见问题..
    14
    5.1.1
    常见问题1.
    14
    第六章
    尚需解决的问题..
    14
    第七章
    附录..
    14
    7.1
    作者介绍及联系方式..
    14
    7.2
    参考资料..
    14
    7.3
    源代码..
    15
    第一章 项目技术背景介绍
    1.1 项目背景
      略。
    1.2 技术背景
    测试环境为RedHat Enterprise Linux
      ,测试数据的采集使用Linux自带的工具top、tcpdump、tethereal。自动化测试工具的开发使用Linux自带的Perl,版本为v5.8.5
     built for   fori386-linux-thread-multi。
    Perl(Practical Extraction and Report Language)一般被称为“实用报表提取语言”。
    Perl 最初的设计者为Larry Wall,它于1987年12月18日发表。Perl借取了C、sed、awk、shell
     scripting以及很多其他程序语言的特性。“懒惰”的Larry为了找到一个更好的解决问题的方法,从而发明了这个强大的语言。
    Perl的解释程序是开放源码的免费软件。Perl的可移植性强。如果对脚本语言感兴趣的话,你会发现,Perl,很好,很强大。
    更多关于Perl的内容可以在www.perl.org上找到。
    1.3词汇解释 
   
   
   
    词汇名称
   
   
    词汇含义
   
   
    备注
   
     
     
   
     
   
   
    crontab
   
   
    Linux任务计划工具
   
   
     
   
   
    Expect
   
   
    以脚本形式实现交互式应用程序的语言
   
   
     
   
   
    Scp
   
   
    Linux拷贝远程文件的工具
   
   
     
   
   
    用例脚本
   
   
    按照一定的关键字、格式,将测试用例(前提条件、输入、执行步骤)写成脚本形式,供测试工具解析并执行
   
   
    使用这种方法的优点是可以扩展用例
   
   
    第二章 测试方案的设计
    2.1 需求分析
    通过分析测试用例,根据用例重要程度、执行频度、是否可以自动化,总结出以下可以使用测试工具来实现自动化测试的功能点:
      l        根据用例的前提条件,修改应用程序的相关配置
    l        启动(停止)应用程序
    l        收集应用程序的各项性能指标,如:CPU、内存、带宽、消息传输延时等
    l        控制测试时间
      l        分析各项性能指标,写入Excel,画出折线图
    l        备份系统日志及测试结果数据
     
    为使测试过程简化,并方便以后的回归测试,开发的自动化测试工具,应该具有以下功能:
      l        可以控制N(N>10)台Linux服务器,可以执行命令或脚本、拷贝文件等;
    l        可以获取系统性能指标,如:CPU、内存、带宽等;
      l        可以将系统性能指标分析并写入Excel,方便画出折线图;
    l        可以扩展测试用例。
    第三章 测试工具的设计与实现
    3.1 测试工具的设计
    如图3.1-1所示,测试工具的工作流程分为3个部分:
      l        读取用例:此处的“用例”是提前按照一定的格式设计好的,就是把我们设计的测试用例再翻译成一种可以让用例解析工具“看”的懂、可以帮你自动执行的脚本,详细信息请参考4.1
    测试用例的编写。
      l        执行用例:执行用例中的内容,需要之前设计好的用例是完全正确的。
    l        生成测试结果:将用例中涉及到的测试数据结果保存,并对测试结果分析、整理
   
   
    图3.1-1 测试工具设计
      从上图中可以看出,用例执行是测试工具的重要部分,如何在多台Linux服务器上执行测试用例是测试工具的核心部分。经过分析,欲实现远程控制Linux服务器,并且执行特定的命令,有以下3种方案:
    l        使用Cronjob:
    在 Linux   中,任务可以被配置在指定的时间段、指定的日期、或系统平均载量低于指定的数量时自动运行。可使用自动化的任务来执行定期备份、监控系统、运行定制脚本等等。使用Linux   crontab可以配置服务器的启动,缺点是任务执行的时间需要预先设置,不灵活。
    l        ssh
    命令:使用ssh脚本在服务器上执行预期的命令。如以下脚本实现了在192.168.0.1这台服务器上执行“ls”命令:
    #! /usr/bin/expect
    spawn ssh user@192.168.0.1 ls
    expect “*password:”
    send 123456/r
    expect eof
    exit
    l        C/S模式:在每个服务器上启动一个小的客户端程序,通过在Server端向客户端发送消息实现在服务器上的操作,比如:向192.168.0.1发送“ls”以执行命令。经测试,可以使用Linux自带的Perl(v5.8.0)实现,缺点是需要在多台服务器上运行客户端,自动化程度不能满足要求,另外通过perl的Socket包控制多个客户端,工作量比较大,短时间内不易完成。
    第二种方案简单易与实现,最终选择第二种方案。这一部分是整个任务的难点,直接影响到后续的功能是否可以实现。
    3.2 测试工具的实现
    3.2.1Linux服务器的远程控制
    通过学习Expect的用法,使用expect语句实现在远程机器上执行命令的功能,如:
    expect –c “spawnssh $remote_user@$remote_ip $remote_cmd;
    expect “*password:”;
    send $remote_password/r;
    expect eof;”
    以下是实现远程控制 Linux服务器的子函数:
   
    图3.2-1
    控制远程Linux服务器
    3.2.2
    应用程序的启动与停止
    用例脚本中用“start”、“stop”作为关键字来区分对应用程序的操作。
      l        应用程序的启动:在远程服务器上执行命令以启动应用程序,检查该进程是否存在,若存在,返回进程ID,并提示启动成功;若不存在,提示启动失败。
    l        应用程序的停止:根据应用程序的进程ID,使用kill的方法,停止应用程序,检查该进程是否存在,若不存在,提示停止应用程序成功;若仍存在,提示失败。
    3.2.3
    测试时间的控制
    不同的测试用例,测试的时间不一致,可以使用“sleep
    time”来实现控制测试时间。用例脚本中用“sleep”作为关键字来控制测试时间。
   
    图3.2-2
    测试时间的控制
    3.2.4
    本地命令的执行
    用例脚本中用“local”作为关键字执行本地命令。使用Perl的system函数来调用本地命令,如执行“ls”命令,可以使用:
   
    图3.2-3
    本地命令的执行
     
    3.2.5
    远程文件的拷贝
    远程文件的拷贝用Linux下的scp
    命令来实现,如拷贝192.168.0.1上的/home/niwp/temp.log,可以使用如下命令:
   
    图3.2-4
    远程文件的拷贝
     
    具体实现代码,请参考附录部分。
    3.2.6
    测试结果写入Excel
      可以按照测试用例的步骤编写测试脚本进行测试了,在得到测试结果后对数据进行一下处理,把log中的数据输出到Excel中,这样可以直接出图表了。这个部分使用Perl的
    Spreadsheet::WriteExcel模块来完成,Spreadsheet::WriteExcel的使用可以输入:
      #perldoc Spreadsheet::WriteExcel
    下面就举个简单的例子,创建一个Excel workbook,添加多个worksheet,并写入数据:
   
    图3.2-5 Perl新建 Excel代码
     
      执行后,可以得到名字为‘test.xls’的Excel文件,其内容如下:
   
    图3.2-6
    创建成功
    3.2.7
    多个测试用例的执行
      在执行用例时,可以用测试用例的名称做为参数来使用此工具,每个用例执行完成后,都会创建与用例名称对应的文件夹,用来存放测试结果。如依次执行PA0001、PA0002两个用例:
    l# ./Tester.plPA0001 PA0002
    第四章 测试工具的使用
    4.1 用例脚本的编写
    l        启动应用程序
   
    startusername:password@host script
    l        停止应用程序
   
    stopusername:password@host script
    或 execute username:password@host “kill $(ps –ef| grep –v grep | grep xxx |   awk ‘{print $2}’)“
    l        测试时间控制
    sleep time
    l        测试日志备份
    copyusername:password@host log /destination
    l        测试数据处理
    local “./log2excel.pl”
        以下是测试用例PA0001的测试脚本:
     
   
    图4.1-1
    用例脚本内容
   
    第五章 使用总结
    5.1 常见问题
    5.1.1
    常见问题1
    expect的使用时,需注意timeout的设定问题。当执行一系列命令后,expect脚本会等待结束符“eof”的出现,如果一直没有出现,直到timeout时间已到,该进程会退出。
     
    第六章 尚需解决的问题
      l        有密码验证登录和无密码验证登录没有考虑到,实际使用时可用两个函数来实现;
    l        测试完成后数据处理的部分要根据实际的测试数据来完成其特定功能;
      l        启动应用程序过程中,如果某一台服务器上的应用程序启动失败,会继续执行,需要根据实际情况修改,且对应用程序的配置正确性要求较高,配置错误,可能导致此次测试失败。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试工具频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程