赞
踩
是测试系统组件间接口的一种测试。主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。
1. 检查接口参数传递的正确性
2. 接口功能实现的正确性
3. 输出结果的正确性
4. 对各种异常情况的容错处理的完整性和合理性
- 单API接口测试:主要关注参数取值和参数取值的组合。
- 组合API接口测试:主要关注功能的完整性和正确性。
- 完整性: 完成一个特定功能
- 正确性: 执行结果正确,满足测试要求
- 服务不具备独立验证能力
- 自动化用例开发效率低
原则:同源、独立测试、全自动化测试
1). 同源:设计,开发,测试三个活动基于同一源头
2). 独立测试:DevOps模式下,50%+服务涉及服务依赖,服务自测试前移到开发自测试阶段开展,创建mock服务使环境解耦,否则微服务独立测试难以开展
3). 100%自动化测试:在开发自测试阶段,开发人员时间有限,为了提高转测效率应该尽量高效的使用自动化,也就是说能自动化解决的工作尽量自动化解决,就是我们倡议的100%自动化
步骤 | 解释 |
---|---|
接口梳理 | 参考接口设计文档,业务流图等 |
接口参数分析 | 熟悉接口参数和作用 |
业务场景梳理 | 业务场景分析、涉及的API组合、业务逻辑关联等 |
单接口测试设计 | 业务场景分析、涉及的API组合、业务逻辑关联等 |
多接口组合场景设计 | 单接口单参数取值,单接口多参数组合,测试输入数据设计,返回检查点设计等 |
基于接口进行测试用例设计、建模,通过APItest 实现接口封装调用,脚本开发,集成到流水线,实现单服务测试。
性能问题会严重影响用户体验,而导致用户流失
提供低门槛,低成本的一站式云化性能测试解决方案
MicroService是一种架构风格, 将单个应用设计成一组服务集合。优点是:高度模块化,可独立部署,技术多样性,但是管理复杂性高,服务以服务之间的依赖高,要测试各个服务的难度大。
契约测试时一种针对外部服务的接口进行的测试,他能够验证服务是否满足消费方期待的契约。这个契约包含了对输入和输出的数据结构的期望,性能以及并发性
- 产品环境:消费者与生产者的调用关系
- consumer测试环境
- provider测试环境
- 通过Mock技术解除Consumer对Provider的依赖
- 通过契约测试保证provider的修改对consumer保持一致
mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
微服务测试面临问题 - 使用mock解决
1、如何实现环境无依赖,服务间无依赖。
2、如何实现快速测试,支撑服务快速上线。
mock测试目标
1、服务解耦: mock解除微服务之间的依赖
2、分层测试,自动化一切: 微服务接口测试和服务组集成测试都可以
3、精准测试: mock精准模拟其他服务的返回
4、Mock自助服务(yaml同源):将服务自己对外提供的接口进行mock化,从而达到与yaml(api接口定义文档)同源
测试金字塔:
APIManger通过yaml文件来对API接口进行定义,当yaml文件变更(api变更),会将新的yaml文件推送给mock服务,mock服务感知到变更后会通过Mock流水线进行自动升级,部署,以更新mock实例。从而实现mock服务于yaml文件同源。
新功能测试:需求不稳定,不适合进行自动化测试
回归测试和兼容性测试:前者需要执行大量的回归测试用例,而后者需要将这些用例在不同的浏览器中重复执行。因此可以利用自动化测试工具,将重复,低效,易错的工作进行自动化。
- 冒烟测试
- 新功能测试
- 回归测试
- 兼容性测试(一套测试脚本,多个浏览器执行)
- 完成手动测试无法完成的工作,下班后无人值守测试
- 更快的速度
- 更高的覆盖率
- 更好的稳定性和可扩展性
TestNG:
- DataProvider:使用同一种方法的测试覆盖变得非常容易,非常适合边界测试
- BaseCase:提供基础的方法和框架
- 结果报表:运行后默认生成两种测试报告html/xml, 位于test out-put下
Selenium:
- 结果校验库:执行过程中添加检查点进行校验
- 业务封装库:封装成共有方法供大家公用
- UI Map: 生成脚本必须的map文件,日志库
- 日志库:执行日志
解决方案:先进行人工录制测试用例,DevCloud自动生成测试序列和自动化执行脚本,然后执行测试用例,最后生成测试报告。
- 简单:
0编码成本、0环境搭建成本、3步生成WebUI脚本、1步WebUI自动化执行
- 高效:
可视化编排测试用例、测试关键字批量复用、云端弹性资源池、实时反馈测试结果
- 专业:
高级测试场景编排、定制化用户数据配置、固化常用步骤、流水线持续自动化测试
软件可靠性:软件在所规定的环境条件下和规定时间内正确的完成任务的能力。
是按照软件操作剖面对软件进行随机测试的一种测试方法
采用人工的方法将故障注入到特定的目标系统中,同时采集系统所注入故障的反应信息
软件故障注入:
- 静态故障注入:主要通过程序变异的方法,通过改变原程序,使被测系统文件静态的存在错误,从而使其运行时出现故障
- 动态注入:是在被测系统正常运行过程中,在特定的状态或条件下,通过一定的机制修改被测系统的二进制映像,从而实现故障注入。由于注入故障前被测系统的二进制映像不被改变,因此它能逼真地模拟被测系统的运行。另外,由于该种方式是根据被测系统的运行状态或条件注入故障的,所以它具有灵活性。
混沌测试是检测分布式系统不确定性、建立系统弹性信心的一种非常好的方式
什么时DevSecOps
通过给开发或运维角色加强或建立安全意识,或是在产品团队中引入一个安全工程师角色,在产品设计中找到安全问题,从而将安全要求汇聚在Devops中。
DevSeOps-安全测试云服务框架
主机漏洞扫描组件:
secVas: 自动化的web漏洞扫面工具
openvas:开放性漏洞评估系统,核心部件是一个服务器,一套望楼漏洞测试程序。可以检测远程程序和应用程序的安全问题。
Nexpose:漏洞扫描工具
RSAS:绿盟科技远程安全评估系统,自动诊断漏洞
web漏洞扫描:
secScan: 自动化主机漏洞扫描工具
Burpsuite: web渗透扫描工具
Appscan: web项目的安全测试工具,扫描网站所有url
AWVS: web漏洞扫描工具
在线测试是指在生产环境中开展的,或者利用生产环境数据开展的各种类型的测试活动。
· 如何构造生产环境数据进行测试?
· 灰度发布应该观察多久,需要观察哪些数据?
· 如何模拟现网用户真实使用场景测试?
· 现网架构越来越复杂,如何保证系统时时刻刻都是可用的?
将生产环境用户真实数据引流至研发去验证环境,通过对比研发区的验证结果与生产环境的真实结果对比,判断新版本是否存在潜在问题。
1.请求收集:收集生产环境用户真实请求
2.数据同步:生产环境冷备DB数据,同步至A/B两套环境
3.流量回放:将真实流量回放到A/B两套环境
4.结果对比:比对A/B两套环境流量执行结果
部署在生产环境之后,快速启动基于现网真实数据对该发布版本进行快速验证,保证新版本重要功能运行正常。
1.测试时机:在生产环境部署后快速启动部署测试
2.测试数据:基于生产环境的真实数据
3.测试范围:核心功能和常用功能所对应的测试用例
4.测试结果:核心功能或常用功能用例执行失败立即定位解决或回退版本
产品、服务发布后,在生产环境对产品/服务重要功能进行7*24小时持续拨测以便尽早或先于用户发现问题并协助研发人员快速修复上线。
1. 筛选用例:重要功能对应测试用例
2. 定时拨测:定时对重要功能进行拨测
3. 现网告警:拨测用例执行失败并发送告警短信,提示告警等级
4. 处理上线:研发人员根据告警快速处理并快速上线
1. 用例共享:研发、在在线测试用例资源共享,提供研发效率
2. 执行方式灵活:用例按节点区域、并行串行、定时执行等多种执行策略,满足不同测试需求
3. 模拟全球用户持续发起在线测试:跨区域持续测试被测服务,实现分布式部署,实时发起线上真实请求并收集数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。