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