1、什么是接口测试、主要目的、作用
测试系统组件之间的接口
? ? ? ? a、被测系统与外部系统之间的接口
? ? ? ? b、被测系统内部各个子模块的接口
主要目的:测试接口传参正确性、功能正确性、输出结果正确性,以及针对各种异常情况的处理是否完整、合理
主要作用:能更早、更底层的发现bug,成本低收益高,可以使后期的功能测试阶段bug数量减少
2、接口测试的策略
主要是接口功能测试、接口性能测试、接口安全性测试
接口功能:正常场景、异常场景
? ? ? ? 参数的边界值、参数组合
接口性能测试:响应时间、吞吐量、并发数,硬件资源(CPU、内存、io、网络)
接口安全测试:敏感信息加密(前后端数据传输加密、日志信息加密)、SQL注入、xss攻击
3、接口测试的流程
需求分析评审,熟悉需求
开发人员提供接口文档
编写接口测试用例
用例评审
提测后正式开始测试
测试完成提交测试报告
4、接口文档的内容
接口说明:接口属于什么模块、主要功能是什么
协议、请求方式、接口域名、路径、请求头、请求参数
响应码、响应数据、响应信息
5、如何设计接口测试用例
主要是以接口文档为依据
通用性:接口通用性校验,正常按照文档传参、查看返回结果是否符合预期
参数组合:必填参数、选填参数组合
异常情况: 不符合传参规则,各种异常情况覆盖
接口安全:绕过正常值、身份授权、参数是否加密、加密是否能破解、密码的安全规则
6、接口测试用例的内容
项目、模块、编号、标题、接口名称、请求方式、请求URL、请求参数、前置条件
预期结果、实际结果、请求报文、响应报文、测试结果、测试人员
7、什么是性能测试
概念:通过自动化测试工具,来模拟出正常、峰值、异常负载来对系统的各项性能指标进行测试
压力测试:属于性能测试,通过一个系统的瓶颈或者不能接受的性能点,来获取系统能提供的最大服务级别的测试
负载测试:属于性能测试,通过不同级别的负载条件,给服务器逐渐增加负载,目标是查看系统性能各项指标的变化
稳定性测试:长时间给系统一定的负载量,验证服务器允许是否稳定,性能指标变化是否平缓
容量测试:系统最大承受量,系统最大用户数、最大存储量、最多处理的数据流
并发测试:测试多个用户在同一时刻对同一个应用、模块、数据时是否产生并发问题
基准测试:比较新的或者未知测试对象,与已知参照标准的性能
8、性能测试的目的
验证系统是否达到用户需求的性能指标,测试出系统的性能瓶颈,优化系统
9、性能测试的流程、你如何开展性能测试工作
1、熟悉被测系统
? ? ? ? 了解系统架构、功能逻辑
2、需求分析
? ? ? ? 根据测试目的 细化需求? 制定性能测试计划,性能测试场景
3、测试准备
? ? ? ? 客户端准备、服务器准备、测试数据准备、测试脚本准备
4、搭建好测试环境后备份测试环境,为回归测试做准备
5、执行测试
? ? ? ? 监控测试客户端和服务器的性能,监控服务器端应用情况
6、性能分析调优
? ? ? ? 找出性能瓶颈,提高系统整体性能,满足用户的需求
7、编写测试报告
10、性能测试中各种性能指标解释
系统指标
? ? ? ? 响应时间:系统响应时间,应用系统从发出请求到客户端收到响应的时间,为网络响应时间和应用程序响应时间的和
? ? ? ? 平均响应时间:所有请求花费的平均时间
? ? ? ? 服务器吞吐量:单位时间内系统能处理请求的数量,计算公式是? 处理事务数量除以时间
? ? ? ? 并发用户数:在同一时刻与向服务器发送请求的在线用户数
? ? ? ? 注册用户数:在系统中已经注册的用户数量
? ? ? ? 在线用户数:已经登录,浏览网页或系统的用户数量
? ? ? ? 事务:一件完整的事情,例如开始登录到结束登录,登录就是一个完整的事务
? ? ? ? tps:每秒系统处理的事务数量
? ? ? ? qps:每秒系统处理的查询次数
? ? ? ? hps:每秒系统处理的请求数
? ? ? ? 点击量:系统收到的请求数
一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求(越大越好)
? ? ? ? 网络吞吐量:网络传输的数据量
? ? ? ? 网络吞吐率:单位时间内网络传输的数据量、
资源指标:
? ? ? ? 硬件性能指标:CPU、内存、磁盘(disk i/o)、网络(network i/o)
? ? ? ? 中间件:webTomcat服务器,jvm(Java虚拟机),threadPool(线程池)、jdbc数据驱动
? ? ? ? 数据库指标:SQL、吞吐量、缓存命中率、连接数
11、性能测试怎么分析需求
首先是明确此次性能测试目的,用户需要达到什么样的性能指标
然后熟悉系统的架构、软硬件配置、网络配置
深入了解系统的基本业务、关键功能、用户行为
还有被测系统,未来的规划或者可能拓展性能需求
明确工具选型,明确具体的性能指标:如并发、吞吐量、响应时间、事务处理能力
12、性能瓶颈
硬件:CPU、内存、磁盘
软件:服务器操作系统、数据库、web服务器、中间件
程序内部:SQL语句、数据库架构设计、业务逻辑、算法
服务器的操作系统:物理内存、虚拟内存
网络:网络防火墙、动态负载均衡器、交换机
13、描述一下客户端发起请求到服务器响应给客户端的过程
客户端发送请求到服务器:请求网络传输时间
服务器响应 返回给客户端:响应网络传输时间
数据在浏览器页面上渲染:客户端浏览器加载渲染时间
处理器响应时间:应用服务器+数据库服务器处理时间
14、软件的性能问题是怎么产生的
软件处于高负载状态
业务逻辑复杂
不同的软硬件资源
软件代码本身
数据库
15、内存泄漏、以及其带来的性能问题
对象没有被程序使用,但是垃圾回收器回收不了,因为对象正在被引用
长时间运行,内存泄漏会导致程序占用的内存一直增加,知道内存耗尽了导致宕机
系统会运行越来越慢
16、什么是敏捷开发模型
简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态
17、敏捷开发举例
新项目
客户提不出具体需求
根据原型和设计稿 基本确定需求
项目启动
先提供实例给客户用
不断迭代、不断测试
敏捷的好处? 不断测试和需求变更
敏捷的坏处? 需求不明确,反复迭代,工作量大0
迭代的好处,随时接受需求变更
满足全部需求,项目交付
18、Linux常用命令
- cd
- pwd
- ls
- whoami
- cp
- mv
- grep
- find
- ps?
- kill? ?
- cat? ? ?
- tar?
- ?tar -xzvf 文件名? ?解压文件
- tar -czvf? 文件名? 压缩文件
- ifconfig
- ping
- mkdir
- touch
- rm
- rmdir
- vi? ?创建文件或编辑
- tail? ?查看文件的后几行
- tail -5? 文件名? ? ? 查看文件后5行内容
- less? 查看当前文档内容? ?相对cat,less可以实现翻页
- more? 分页展示
- chmod? 修改目录或文件的权限值
- chown? 修改文件或者目路的归属组、用户
|