测试工具(转载) - zLulus/My_Note GitHub Wiki

常见误区

测试就是保证软件无故障运行;
测试工作可以被取代;(开发自测,产品验收,用户众测)
自动化测试是万能的;
Bug越多测试越有效;

软件测试总纲

1

一些基本概念

自动化测试:自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
性能测试:——性能测试是为描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。性能测试主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。通常把性能测试、负载测试、压力测试等统称为性能测试。接口测试——接口测试的目的是为了测试接口(听起来怪怪的),尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。

常用的测试工具

功能:QTP、WinRunner、Rational Robot、JMeter、SilkTest、Selenium等;
性能:QA Load、SilkPerformer、LoadRunner、WebRunner等;
接口:TestNG 、JUNIT、SoapUI 等;

测试过程中遇到的问题

时间短
流程不规范
需求变更频繁
环境不稳定
开发不配合
……

Jmeter介绍

一、什么是Jmeter?
二、Jmeter的工作原理是什么?
三、Jmeter是如何进行自动化及性能测试的?

Jmeter基础

1、Jmeter是基于Java的,开放源代码的测试工具;
2、Jmeter可以用作测试静态或动态资源的性能;
3、Jmeter可用于模拟在服务器、网络或其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况;
4、Jmeter的工作原理是向服务器提交请求,从服务器获取请求返回的结果;

简单例子

1、安装一个Jmeter版本:apache-jmeter-2.9;
2、打开Jmeter:在..\jmeter\apache-jmeter-2.9\bin下双击jmeter.bat文件;
3、建立Jmeter测试计划:在弹出的Jmeter运行窗口修改测试计划名称;
2 4、添加线程组:右击测试计划,选择“添加”-“Threads(Users)”-“线程组”,添加一个线程组,并改名;
3 5、设置并启动JMeter代理服务器:右击工作台,选择添加非测试元件中的“Http代理服务器”;
4 设置代理服务器,目标控制器选择刚才建立的线程组(测试计划-爱代驾>线程组-电销管理)。点击启动按钮,启动代理服务器;
Jmeter里HTTP请求的默认端口号是8080,可改。
5 6、设置IE的代理服务器配置,端口号和代理服务器的端口号一致;
6 7、录制脚本:在浏览器的URL栏输入需要测试的地址,进行操作,操作完毕后,点击JMeter中的“Http代理服务器”的“停止”按钮,你将能看到“线程组-电销管理”下面已经录制了刚才操作的内容。
7 8、调制回放:点击运行-启动按钮或快捷按键;
8

Jmeter结果处理

Jmeter脚本可以通过添加“察看结果树”来观察调试脚本的效果,通过添加“聚合报告”来监控性能状况。
添加方式,右击调试脚本,添加-监听器-察看结果数/聚合报告。
9

察看结果数

主要有三种视图方式:
1、取样器结果(Sampler result):用于察看Http请求(HttpRequest)的执行情况。
2、请求(Request):察看Http请求(Http Request)发送情况,可以在这里察看POST参数和Cookie的内容信息。
3、响应数据(Response data):可以查看客户端所得到的响应数据(网页)内容,可以文本模式察看,也可以使用网页等形式察看。
10

常用组件

1、 HTTP Cookie Manager:添加HTTP Cookie Manager后,JMeter可以识别cookie信息并保存在变量中,以供使用
2、断言:检查匹配结果;
3、CSV Data Set Config:配置参数;

常见问题

1、怎样设置并发用户数?
选中可视化界面左边树的线程组,右边页面的线程数可以用来设置发送请求的数目。
2、怎样计算Ramp-Up Period时间?
Ramp-Up Period是指每个请求发生的总时间间隔,单位是秒。如果线程数设置为5, Ramp-Up Period为10,那么每个请求之间的间隔就是10/5=2秒。 Ramp-Up Period设为0就是同时并发的意思。
3、get和post的区别?
Get是server从Request URL取得所需的参数,从result中的request可以看到;post是主动向server发送参数,一般看不到这些参数。
4、哪些原因可能导致error的产生?
Http错误,包括不响应,响应超时,结果找不到,断言值错误等;Jmeter本身原因。
5、为何在run的时候,有些页面失败了,但不影响最后结果?原因很多,最主要的一种是主流页面和失败页面之间不存在依赖关系,即使这样的页面出错,也不会影响运行得到的正常结果,但是会影响到测试的结果及分析结果。
6、为什么脚本开始运行就有错误,起后来的脚本还可以运行?
在线程组的设置,如果选择了continue,即使前面的脚本出现错误,整个thread仍会运行到结束。选择Stop Thread会结束当前Thread;选择Stop Test会结束全部Thread。
7、在自动获取的脚本何总会有时出现空的http request,是什么意思?
因为在获取脚本时有些错误,是脚本工具的原因。在 run时这种错误是不参与运行的。
8、常用的http错误代码有哪些?
– 400无法解析此请求;
– 403禁止访问,访问被拒绝;
– 404找不到文件或目录;
– 405用于访问该页的HTTP动作未被许可;
– 410文件已删除;
– 500服务器内部错误;
– 501标题值制定的配置没有执行;
– 502 Web服务器作为网关或代理服务器时收到无效响应。