自动化测试:界面自动化、接口自动化、性能自动化
金字塔模型
UI界面层(用户界面测试):功能性验证测试、兼容性与用户测试
业务逻辑层(API层面):客户端模拟测试、内外接口测试、SDK接口测试
数据处理层:单元测试
越是底层的测试,运行速度越快,时间开销越少,金钱开销越少
越是顶层的测试,运行速度越慢,时间开销越多,金钱开销越多
WebUI自动化测试
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样
其中Selenium RC(Selenium Remote Control)为核心部分
1、在运行测试脚本前必须先启动Selenium RC Server,是浏览器和测试脚本之间通信的桥梁
2、当开始运行测试脚本时,Selenium RC Server会Selenium Core(js代码)注入到浏览器中以达成控制浏览器
3、Selenium Core被注入到浏览器中,Selenium Core就会开始接收并转发来自Seleniun RC Server的测试指令
4、当测试指令接收后,Selenium Core就会把它们当做js来执行
5、浏览器按照Selenium Core的指令进行操作,并将执行结果返回给Selenium RC Server,它会将接收到的结果返回给你的测试脚本
6、Selenium RC Server继续从你的测试脚本发送过来的指令中提取下一条指令,重复上述过程
首先需要安装python3——安装pycharm(选择安装)——命令输入框输入pip install selenium——下载浏览器驱动(注意浏览器版本与驱动版本一定要一致,且驱动下载完成后放入python.exe存在的目录下)——打开pycharm,输入代码,运行,查看是否成功调用浏览器运行,如果运行成功,说明已成功搭建好自动化开发环境
在输入命令代码前要先导入库和类:
from selenium import webdriver ———— 导入selenium的webdriver包。
只有导入,才能用webdriver开发脚本
from selenium.webdriver.common.keys import Keys
导入提供键盘操作的类
from selenium.webdriver.common.action_chains import ActionChains
导入提供鼠标操作的类:ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
导入WebDriverWait类
from selenium.webdriver.support import expected_conditions as EC
导入expected_conditions类,并将它命名为EC
driver = webdriver.Chrome() /.Firefox()
用webdriver打开谷歌/火狐浏览器
driver.get(“url”)
访问网站
AppUI自动化测试
Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端
接口测试,性能测试
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现
JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况
接口测试
Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队
接口测试
soapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。把一个或多个测试套件(TestSuite)组织成项目,每个测试套件包含一个或多个测试用例(TestCase),每个测试用例包含一个或多个测试步骤,包括发送请求、接受响应、分析结果、改变测试执行流程等
稳定性测试
软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件
压力测试结果:崩溃crash,无响应anr
基本命令:adb shell monkey 1000
WebUI自动化测试
HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。目前版本名为Unified Functional Testing,简称UFT
性能测试
Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学。它的主要思想就是模拟一群用户将访问你的网站。每个用户的行为由你编写的python代码定义,同时可以从Web界面中实时观察到用户的行为
性能测试
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能
安全测试
是一个适合安全专家的 Web 应用程序和 Web 服务渗透测试解决方案,对现代 Web 应用程序和服务执行自动化的动态应用程序安全测试 (DAST) 和交互式应用程序安全测试 (IAST),支持 Web 2.0、JavaScript 和 AJAX 框架的全面的 JavaScript 执行引擎,涵盖 XML 和 JSON 基础架构的 SOAP 和 REST Web 服务测试支持 WS-Security 标准、XML 加密和 XML 签名,详细的漏洞公告和修复建议
持续集成
自动化构建 编译,部署,任务执行,测试报告,邮件通知等
WebUI 自动化测试,接口测试
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发
开源软件测试管理工具:Bugfree、Bugzilla、TestLink、Mantis、Zentaopms等。
开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject等。
开源性能自动化测试工具:JMeter、Locust、OpenSTA、DBMonster、
Quality Center:它是基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷
Unified Functional Testing(UTF):即QTP的升级版本,UFT主要应用于:功能测试、回归测试、service testing
LoadRunner:预测系统行为和性能的负载测试工具
1.Android App软件测试工具
Monkey
MonkeyRunner
Appium
UI Automation
Appium
Xcode5
JMeter
Postman
Soapui