接口测试
一、接口测试流程
1、制定测试计划,分配任务
2、从API文档中提取接口清单
3、设计测试用例并参数化覆盖测试用例
4、编写脚本实现,并导入测试数据
5、测试结果汇总,BUG提交
二、功能测试
概念:逐一测试所有接口,测试中模拟用户的多样性操作提交各种测试数据
实现:
Ⅰ设计测试用例
1)测试用例的设计原则:
1.覆盖所有的必选参数
2.组合可选参数
3.参数边界值
4.越界的数据
5.如果参数的取值范围时枚举变量,需要覆盖所有枚举值
6.空数据
7.包含特殊的字符(敏感词汇)
8.错误的数据
2)参数化覆盖测试用例
根据测试用例设计的数据类型,设计具体的测试数据,逐条设计,逐条覆盖
Ⅱ测试脚本编写
1)编写脚本模板
2)使用CSV存储测试数据
注意1:路径使用相对路径
注意2:编码集UTF-8无BOM
3)关联脚本与数据
1.解析CSV文件
2.将数据设置进脚本模板
3.设置循环次数
Ⅲ生成测试报告
逐条测试数据对比,查看实际结果是否符合用例中的预期结果
三、自动化测试
概念:让程序驱动代替人工完成部分测试任务,就是自动化测试
作用:
场景:程序版本升级时会使用自动化测试
实现:
自动化测试原则:
1.只需测试重要的或被重复调用的接口
2.只需设计正向用例
3.自动化脚本可以重复执行
4.一个线程组只设计一个取样器,方便单个接口测试
四、性能测试
概念:模拟各种正常的、峰值的测试环境,检测程序的各项性能指标是否能够达标
实现:
1)设计测试用例,设计原则
1.线程组:增删改查每一个功能点,都需要建立单独线程组,而避免在同一个线程组内添加多个取样器
2.参数化:参数化尽量避免采用从外部读取参数(CSV组件),而是使用前缀_函数 生成测试数据
3.查看结果树:必须清除单个接口内或线程组内的查看结果树,建议一个测试计划就一个结果树
4.报告:性能报告可根据实际需求选择,建议保留添加 聚合报告
5.分布式:如果并发数量大,采用分布式
6.新增/删除/修改:建议不要采用时间模式(集合点、QPS…)来压测,直接使用线程数和循环
2)编写jmeter脚本
3)生成图形化测试报告
在jmeter中可以以图形化(饼状图、柱状图…)的方式显示脚本运行结果,较之于聚合报告或查看结果树组件实现更直观,用户体验更友好
生成图形化测试报告命令:
jmeter -n -t 脚本文件 -l 日志文件 -e -o 目录
-n 无图形化运行
-t 被运行的脚本
-l 将运行信息写入日志文件
-e 生成测试报告
-o 指定报告输出目录