业务测试
越早发现缺陷,修复缺陷的成本就越低。
- 需求测试
- 设计测试
- 过程测试
- 用户体验
- 界面测试
- 浏览器兼容测试
分层测试
- UI层测试
- AI层测试
- 数据层测试
测试提前介入是所有项目都提倡的,目的是把问题拦截在前期,降低问题的修复成本。
体现精准性,离问题产生的地方越近,越容易触发问题。
分层自动化测试
- UI层测试
- 服务层测试
- 单元层测试
java的JUnit、TestNG单元测试框架,绝大多数主流语言都有其对应的单元测试框架。
UI层目前比较主流的自动化测试工具QTP、Watir和Selenium等
应该吧
把更多的自动化测试放在单元测试和接口测试阶段;测试人员应该更多的精力放在UI层,自动化帮助测试人员部分解放重复劳动。
API自动化测试
一般情况下,我们所测试的接口对象主要是Web接口。Web接口包括:
- http接口
- Web service接口
- RPC接口
HTTP接口
- GET
- POST
- HEAD
- PUT
- DELETE
- CONNECT
- OPTIONS
- TRACE
GET和POST的区别:
| 分类 | GET方法 | POST方法 |
|---|---|---|
| 后退、刷新按钮 | 无害 | 数据会被重新提交 |
| 书签 | 可以收藏为书签 | 不可收藏为书签 |
| 缓存 | 能被缓存 | 不能缓存 |
| 编码类型 | application/x-www-form-urlencoded | application/x-www-form-urlencoded 或 multipart/form-data,为二进制数据使用多重编码 |
| 历时 | 参数保留在浏览器历时记录中 | 参数不会保存在浏览器历时记录中 |
| 对数据长度的限制 | 有限制 | 无限制 |
| 对数据类型的限制 | 只允许ASCII字符 | 没有限制 |
| 安全性 | 比较差,所发送的数据是URL的一部分 | 更安全,参数不会保存在浏览器历时记录或Web服务器日志中 |
| 可见性 | 数据在URL找那个对所有人都是可见的 | 数据不会显示在URL中 |
RPC接口
Remote Procedure Call, 远程过程调用。
接口测试
常用测试工具有JMeter,SoapUI,Postman,HTTPRequester等
各种j自动化测试java工具
- 日志工具 Log4j。可以控制信息输送的目的地是控制台、文件、GUI控件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等。
- TestNG驱动接口测试脚本。TestNG在参数化测试、依赖测试及套件测试方面的功能更优秀。另外,,TestNG涵盖了JUnit4的大多数功能。
- ReportNG导出测试报告。ReportNG比TestNG功能更强大。
UI自动化测试框架
hi_po测试框架
应该是京东自己开发的一套,基于python语言,使用selenium的,基于pageobject思想设计的一套web页面UI自动化测试框架。(本人猜测,在书本中没有找到hi_po的来历,也没有百度到)
使用HTMLTestRuner产生测试报告,Excel进行数据驱动。
PageObject模式
Page Object Design Pattern, PO模式,即页面对象设计模式。
- 复用性
- 可维护性
- 可读性
接口测试框架
框架应考虑设计数据驱动测试
数据可以保存在Excel,CSV,XML文件等
持续集成
提交代码 => 编译(单元测试) => 打包 => 部署 => 测试 => 发布
投入
- 构建一个持续集成系统需要投入大量精力
- 持续投入资源维护和扩展新功能
- 需要比较富裕的硬件资源来支撑多个产品的持续集成
- 这样的基础硬件环境需要专业团队进行维护
回报
- 可以帮助我们尽早发现错误,降低修复成本
- 利用自动化测试可以实现纪律化、强制化
- 任何修改都可以及早反馈,反推开发做更充分的测试(比如单元测试),提高代码质量
jenkins
jenkins对持续集成的支持经历了三个产品阶段:
- Pipeline 通过脚本将各个步骤串联起来。提供Stage View,有助于查看每个阶段的详情。
- Blue Ocean 全新用户界面,提供全程可视化pipeline编辑界面和结果展示定制。
- Jenkins X Jenkins和Kubernetes高度集成化的CI/CD平台,是一个原生云应用。能帮助团队解决微服务体系架构下云原生应用持续交付的问题。
代码覆盖率jacoco
jacoco还在持续更新中,支持多种收集方式,可以用传统的字节码注入方式收集,也提供非侵入式的on-the-fly方式。
必知必会技能总结
- Fiddler 常用抓包工具,查看request和response的相关信息
- Postman 测试HTTP接口常用工具
- Sikuli 编程人员可以使用截图替代代码,使用python语言。
- Moco 是一个简单搭建模拟服务器的程序库/工具
- OCR Optical Character Recognition,光学字符识别