51Testing软件测试论坛

标题: 自动化测试工具——软件测试工程师面试秘籍(32) [打印本页]

作者: lsekfe    时间: 2022-1-26 15:15
标题: 自动化测试工具——软件测试工程师面试秘籍(32)
3.3  自动化测试工具
  自动化测试通常指的是功能测试自动化,就是为了将手动测试的工作转化为自动化测试的工作。自动化测试框架、工具有很多,下面进行简单介绍。
  根据测试语言,有基于Ruby的Watir、TestUnit,基于Java的TestNG、JUnit、Easyb、Mockito,基于Perl的Perl Mechanize、TestBase,基于Python的PyUnit、PAMIE。
  根据测试体系,有单元测试框架、系统测试框架。
  根据测试目的,有GUI自动化测试框架、网络协议自动化测试框架、基于Web的自动化测试框架。
  根据实现深度和角度,有简单的录制回放测试框架、关键字驱动测试框架、关键字驱动及结果输出分析的自动化测试框架、具备智能匹配功能及快速生成脚本功能的自动化测试框架。
  自动化测试对于初级测试工程师来说是一个加分项,对于高级、自动化工程师来说是不断提升的技能。对于形形色色的工具,其功能归纳起来分为3部分—数据准备、操作和校对结果。
  数据准备:包括输入参数、图片、文件,准备数据库等。
  操作:调用被测接口或者执行测试。
  校对结果:检查返回值、页面跳转、数据库数据变更、图片、文件等。
  一般常用的自动化测试工具有Watir、Selenium、MaxQ、WebInject、JMeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator、QTP以及LR。
  下面就介绍互联网公司面试中经常提到的两种自动化工具Selenium和JMeter。

  3.3.1  Selenium
  Selenium是目前使用非常广泛的前端页面自动化测试工具之一。它通过各种方式在Web页面中增加JavaScript代码,在测试过程中通过调用这些JavaScript代码实现对页面的操作。
  现在各大互联网公司常用Selenium包来搭建自己的框架。Selenium包中提供了对网页控件和页面的大部分操作。基于Selenium的自动化测试框架如图3.6所示。
[attach]136310[/attach]
图3.6  基于Selenium的自动化测试框架 

 其中,Control层包含各种控件类,如Button、Text、Select等;Page?层将各类页面封装成类,并提供页面操作函数;Case层通过调用页面操作函数来实现测试用例。
  当然,基于Selenium框架做自动化测试可能会遇到很多常见的问题。这些是面试官常问的问题,以此来考查应聘者是否真的会使用Selenium。
  现在Web有很多版本,对于个别版本,Selenium提供的操作有可能失效,于是测试用例无法正常运行。这种情况下,需要在Control层覆盖Selenium的代码,自己用特殊的方式处理,如判断Web类型后再处理。
  Web控件加载时间与网速快慢有关。若控件还没加载完就执行了操作,就会把测试用例当作错误处理,这比较麻烦。这也需要特殊处理,如判断控件加载完再操作。

  3.3.2  JMeter
  JMeter经常用来做Web压力测试。当然,它也可以用来做自动化测试。
  关于JMeter的主要测试组件的总结如下。
  测试计划是使用JMeter进行测试的起点。
  线程组代表一定数量的并发用户,可以用于模拟用户请求。
  监听器负责收集并检查结果。
  逻辑控制可以定义发送请求的逻辑行为。
  断言可以判断结果是否如用户希望的那样。
  前置处理器和后置处理器在生成请求之前与之后完成工作。
  定时器负责定义请求之间的延迟间隔。
  下面介绍如何使用JMeter进行压力测试。
  Web测试计划一般至少需要3个JMeter测试元件—线程组、HTTP请求、表格,如图3.7所示。
  线程组定义线程数和循环次数。
  HTTP请求定义服务器、端口、协议、方法、请求路径。
  表格负责收集和显示结果。
  对于数据库服务器,在大多数企业中要做压力测试,目的是确定它到底能够承受多少用户访问。通过对SQL语句和存储过程的测试,可以间接反映数据库对象是否需要优化。
  JMeter使用JDBC发送请求,以完成对数据库的测试。数据库测试计划如图3.8所示。[attach]136311[/attach]
图3.7  JMeter测试元件

[attach]136312[/attach]
图3.8  数据库测试计划

JDBC Connection Configuration负责配置与数据库连接相关的信息,如数据库URL、数据库驱动类名、用户、密码等。
  JDBCR Request负责发送请求以进行测试。
  图形结果负责收集显示测试结果。






欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2