测试
B/S架构与C/S架构
B/S架构是浏览器与服务器之间的联系进行测试交互(建立在广域网内,安全系数偏低,系统维护低)
C/S架构是客户端与服务器之间的联系进行测试交互(建立在局域网,安全性能高,系统维护高)
计算机网络的七层模型
- 物理层 : 负责传输二进制比特流
- 数据链路层: 将数据封装成帧
- 网络层: 负责路由地址和广播(ip)
- 传输层: 负责传输端到端的链接(tcp)
- 会话层: 负责建立 维护 拆除会话(session缓存)
- 表示层: 表示数据形式 完成对传输数据的转化(数据的加密解密)
- 应用层: 所有应用程序的网络在此展开(http)
dos 命令
使用win+r: 打开运行窗口,输入cmd执行- ipconfig/all 显示所有的ip地址
- ping 表示主机的连接状态
- cls 清屏
- 切换盘符 盘符:
- 进入文件夹: cd 文件夹名字
- 返回根目录 : cd/
- 返回上级目录: cd …
- 建立文件目录: md 文件夹名字
- 显示文件目录: dir
- 删除目录: rd 名字(不能为空)
- 复制文件 copy 复制路径\文件名 目录路径
- 剪切文件 move 移动路径\文件名 目标路径
- 删除文件 del 文件路径\名字 删除文件夹
- 格式化: format:盘符
测试定义:在规定的条件下对程序进行操作, 从而发现错误,对软件质量进行评估的一个过程
测试的目的: 想以最少的人力,物力和时间找出潜在的各种错误与缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在软件缺陷和错误造成的隐患以及带来的商业风险;
测试
测试的分类: 黑盒测试 灰盒测试 白盒测试 (角度)
黑盒测试:不接触代码,只能检测该软件的30%功能,发现不了内部的结构
灰盒测试:一般就是接口测试,通过对接口的测试来模拟浏览器进行对后端代码的请求与响应;
白盒测试: 直接对结构代码(源代码)进行测试,寻找内部bug,提高后端代码的功能与逻辑;
接口测试
- 接口测试的分类: web接口测试 模块接口测试
- web接口测试:服务器接口测试 外部接口测试(第三方接口测试)
- 服务器接口测试就是测试 浏览器与服务器的接口
- 外部接口测试 : 测试第三方接口是否兼容
- 接口测试使用的工具: Postman RestClient Jmeter
- Postman 是测试谷歌浏览器的测试接口工具
- RestClient 是测试火狐浏览器的测试接口工具
- Jmeter 是Apche 公司使用Java 平台开发的一款测试工具
- 接口架构的设计:RESTful 是一种风格,而不是一种标准
- 当在RESTClient : 进行插件使用时,进行Post /put操作时,需要设定请求体: Content-Type apolication/json
- 使用Jmeter 的作用: 接口测试 性能测试 压力测试 Web 自动化测试 数据库测试 Java程序测试
- 使用Jmeter 的优点: 开源 ,免费 支持多协议 小巧 功能强大
- 缺点: 1.不支持IP欺骗 2. 使用Jmeter 无法验证JS 程序,也无法验证页面UI 所以需要和Selenium 配合完成Web2.0 应用的测试
- 配置 Jmeter 运行环境 : JDK(Java开发工具包,包含JRE和JVM) JRE(Java程序运行环境,包含JVM) JVM(Java虚拟机)
- setup thread group 初始化请求操作 teardown thread group 请求结束操作
- 元件: 定义: 相同类似功能组件集合称之为元件
- 元件的分类: 1.配置元件 2…前置处理器 (逻辑控制器: 在1和2 之后添加)3.定时器 4.Sampler(取样器) 5. 后置处理器 6.断言 7.监听器
- 正则表达式 是对字符串的提取(所有文本) xpath Extractor 是对网页标签的提取
移动端测试 - 自动化工具: Robotium (支持Java 环境Android ,不支持跨应用) 猕猴 (支持 Java Python Node.js 环境Android和 ios ,支持跨应用)
Appium (支持 Java c# Python php perl ruby Node.js,环境Android和ios,支持跨应用)
Web自动化测试
自动化测试的前提条件: 功能测试完毕之后(手工测试结束) web自动化测试属于黑盒测试
自动化测试的目的: 1.解决回归测试 2. 解决模拟压力测试 3.解决兼容性测试 4.提高测试效率 保证产品质量
自动化测试工具:
- QTP(收费,支持web 桌面自动化测试)
- Selenium (开源) web功能测试
- Jmeter(开源 ,使用Java 平台开发的一款测试工具,支持 Web 接口,性能 ,数据库测试,Java测试)
- Loadrunner (收费 Web 性能) 一款性能测试工具,做复杂场景的性能测试
- Robot framework (基于Python 可扩展地的测试自动爱护框架)
主流测试工具 - web 自动化测试: selenium robot framework
- App端自动化测试: Appium Monkeyrunner UIautomation
- PC客户端:(win32): 自动化测试: QTP
- 接口自动化测试: Jmeter Postman RESTClient
- 云测平台: Testin Testbird
- 性能测试: Jmeter LoadRunner
WebDriver 元素定位方式
1.id 2.name 3.class_name 元素属性定位
4.tag_anme 元素标签名称
5.link_text 6.partial_link_text 超链接定位(a标签)
7.Xpath 元素路径定位
8.Css Css选择器定位
Xpath定位策略
- 路径定位{a.绝对路径 b 相对路径} 绝对路径以/开始 相对路径以//开始
- 利用元素属性定位
- 层级与属性结合定位
- 属性与逻辑结合定位
CSS定位方法(selenium推荐使用)
- id 选择器 #
- class 选择器 .
- 元素选择器
- 属性选择器
- 层级选择器
元素常用操作方法
- clear() 清楚文本
- send_keys()模拟输入
- click() 单击元素
WebDriver操作浏览器常用方法
- maximize_window() 窗口最大化
- set_window_size() 浏览器大小
- set_window_position()浏览器位置
- back() 后退按钮
- forward() 前进按钮
- refresh() 刷新
- close() 关闭单个窗口
- quit() 关闭所有窗口
元素等待
- 由于网络速度原因
- 电脑配置原因
- 服务器处理请求原因
元素等待类型 : 显示等待(使WebDriver等待指定元素条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)) 隐式等待(等待元素加载指定的时长,超出抛出NoSuchElementException异常;工作中常用)
测试用例的元素(5w1h)
- 测试目标: why==为什么测试? (功能 可用性 安全性)
- 测试对象: what==测试什么? (对象,类,菜单,按钮, 表格 ,接口 ,整个系统)
- 测试环境: where==在那里测? (测试用例所处的环境,系统的配置和设定)
- 测试前提: when==什么时候测试? (测试用例所处的前提或条件限制)
- 输入数据: which==测哪些数据? (测试那种可以变化的数据[数字 字符 文件])
- 操作步骤: How==如何测试? (执行条件和程序先后顺序和步骤)
缺陷管理工具–禅道
记录缺陷,并对缺陷报告跟踪并处理缺陷,达到修复缺陷的目的
缺陷元素: 缺陷标题 复现缺陷操作步骤 缺陷的实际结果 缺陷的预期结果 缺陷的优先级别 缺陷的严重程度 缺陷的基本信息 缺陷的类型 测试的软件和硬件环境 测试的软件版本 注释文字和截图缺陷图像
缺陷严重程度
致命性错误: 数据丢失 ,数据传递错误,造成操作系统崩溃 应用系统崩溃 非正常关闭和非正常死机
严重错误: 归档的主要功能没有实现或不完整,影响系统的运行,设计不合理造成性能低下
一般性错误: 不影响业务运行的功能问题
测试用例
定义: 是为某个特殊目标编制的一组测试输入 执行条件 预期结果 以便测试某个程序路径或核实是否满足某个特定需求
测试用例的基本元素: 测试索引 测试环境 测试输入 测试操作 预期结果 评价标准
- 一般选用适合的用例管理工具(word excel)
- 用例一定要及时更新(补充新的想法 删除果实的需求)
- 做好用例分级
- 做好用例评审 写用例之前可以征询相关人员的意见 如果评审通过可以参考其执行测试,如果未通过 需要继续修改直到通过为止
- 可以考虑结对编写
- 要全面 包括功能 性能 兼容性 安全性 易用性 容错性
- 注意把握适当的颗粒度
面试要求题目:
Fiddler: 定义: 进行Web调试工具,能记录所有http和 https 请求 允许监视 ,设置断点 修改输出数据 使用.net进行扩展 使用Fiddler 能够理解Http协议
使用ip地址: 127.0.0.1 端口是8888
作为代理的目的进行监视HTTP协议
Fiddler 作为代理服务器(浏览器发送请求到达Fiddler ,然后经过Fiddler把请求发送到web服务器上,由web服务器做出响应返回到Fiddler代理服务器上,然后通过Fiddler把响应返回给浏览器)
Fidler内置命令: select 选择命令 ?text 搜索命令 > size<(大于/小于) status 状态筛选命令 @host 命令
Fiddler 有三个部分组成: 左边的会话框和命令行 右边的会话的详细信息
右边详细框 第一个参数是 统计说明(时间)
Autoresponder 可以指定请求进行展现出来
Fiddler可以进行单步调试功能,断截响应出来的数据,进行修改,返回浏览器中,进行展示
Fiddler可以查看PC端的请求数据,还可以观看移动端的请求数据
Robotframework是进行对测试用例的管理
mongoDB: