1、什么是接口测试用例?
一个接口,可能有不同的功能。接口测试用例就是需要测试的接口功能列表。
2、怎么设计接口测试用例?
a、业务功能测试(正常场景、异常场景)
b、边界值测试(数值大小边界、文字多少边界)
c、异常测试 (参数缺失、并发、压力)
1、什么是接口测试用例?
一个接口,可能有不同的功能。接口测试用例就是需要测试的接口功能列表。
2、怎么设计接口测试用例?
a、业务功能测试(正常场景、异常场景)
b、边界值测试(数值大小边界、文字多少边界)
c、异常测试 (参数缺失、并发、压力)
转载于:https://www.cnblogs.com/smlxs/p/7498541.html
以前做接口自动化测试时,有想过如何批量生成接口测试用例,研究了一下,实现了一个简单模型。
1、首先定义一个列表作为接口的参数信息(假定这是一个增加用户的接口,需要带这么多参数),如下:
case_list= [ # 名称 类型 最小长度min 最大长度mxa 是否必填 选项值 array 格式校验
['name', 'string', '6', '30', 'yes', '', 'no', '' ],
['sex', 'int', '', '', 'no', '1,2', 'yes', '' ],
['age', 'int', '', '', 'no', '', 'no', '' ],
['email', 'string', '6', '250', 'no', '', 'no', '邮箱格式'],
['mark', 'string', '4', '30', 'no', '', 'no', '' ],
['mobile', 'string', '11', '11', 'no', '', 'no', '手机格式'],
['birth', 'date', '', '', 'no', '', 'no', '日期格式']
]
2、根据参数的不同类型定义能够生成的用例名称
根据字符串类型生成用例名称:
def process_str(para_name, para_min, para_max):
print('用例名称: %s 参数长度为 %d' % (para_name, int(para_min)-1))
print('用例名称: %s 参数长度为 %d' % (para_name, int(para_max)+1))
if para_min == para_max:
print('用例名称: %s 参数长度为 %d' % (para_name, int(para_max)))
else:
print('用例名称: %s 参数长度为 %d' % (para_name, int(para_min)))
print('用例名称: %s 参数长度为 %d' % (para_name, int(para_max)))
根据整型生成用例名称:
def process_int(para_name):
print('用例名称: %s 参数为字符串' % para_name)
根据时间类型生成用例名称:
def process_date(para_name):
print('用例名称: %s 参数为字符串' % para_name)
根据浮点型生成用例名称:
def process_float(para_name):
print('用例名称: %s 参数为字符串' % para_name)
print('用例名称: %s 参数为整型' % para_name)
print('用例名称: %s 参数浮点型' % para_name)
根据单个参数生成用例名称:
def genera_para(para_list):
para_name = para_list[0]
para_type = para_list[1]
para_min = para_list[2]
para_max = para_list[3]
para_required = para_list[4]
para_choice = para_list[5]
para_array = para_list[6]
para_format = para_list[7]
if para_format:
print('用例名称: %s 参数 %s 不正确' % (para_name, para_format))
print('用例名称: %s 参数不填' % para_name)
if para_choice:
for x in para_choice.split(','):
print('用例名称: %s 参数值为 %s' % (para_name, x))
print('用例名称: %s 参数值不在可选项中' % para_name)
elif para_type == 'string':
process_str(para_name, para_min, para_max)
elif para_type == 'int':
process_int(para_name)
elif para_type == 'long':
pass
elif para_type == 'float':
process_float(para_name)
elif para_type == 'date':
process_date(para_name)
if para_array == 'yes':
print('用例名称: %s 参数为两个' % para_name)
根据所有的参数生成用例:
def generation(list_case):
for casein list_case:
genera_para(case)
把以上代码放到同一个文件中,然后加上generation(case_list) 这一句,就可以执行了。执行完成之后,可以生成以下的用例:
用例名称: name 参数不填
用例名称: name 参数长度为 5
用例名称: name 参数长度为 31
用例名称: name 参数长度为 6
用例名称: name 参数长度为 30
用例名称: sex 参数不填
用例名称: sex 参数值为 1
用例名称: sex 参数值为 2
用例名称: sex 参数值不在可选项中
用例名称: sex 参数为两个
用例名称: age 参数不填
用例名称: age 参数为字符串
用例名称: email 参数 邮箱格式 不正确
用例名称: email 参数不填
用例名称: email 参数长度为 5
用例名称: email 参数长度为 251
用例名称: email 参数长度为 6
用例名称: email 参数长度为 250
用例名称: mark 参数不填
用例名称: mark 参数长度为 3
用例名称: mark 参数长度为 31
用例名称: mark 参数长度为 4
用例名称: mark 参数长度为 30
用例名称: mobile 参数 手机格式 不正确
用例名称: mobile 参数不填
用例名称: mobile 参数长度为 10
用例名称: mobile 参数长度为 12
用例名称: mobile 参数长度为 11
用例名称: birth 参数 日期格式 不正确
用例名称: birth 参数不填
用例名称: birth 参数为字符串
当然这只是一个简单的生成用例模型,也并不复杂,更没有用到任何的算法,我们也还可以对此进行更多的自动化的操作,比如自动生成测试用例的数据。如果有自己做接口平台的同学,接口多的情况下可以试试这种方法。有兴趣的同学可以留言交流。
接口测试工具:postman,swager
接口测试用例:接口文档出来后,按照接口文档设计接口测试用例 新增接口
参数有,无,null 参数数据类型限制,参数数据类型自身的数据范围限制 覆盖到每个字段
接口类型是http/https类型,分为post,get
post/get: header body(需要输入)
转载于:https://www.cnblogs.com/pcy226/p/11162908.html
?如能帮到你,下方为我们点个在看?推荐:我是如何拿到4个offer的
一、接口测试的测试方案规格建议可以有如下几点:
第一节课、接口测试基础
点击这里免费报名参加
(获取直播间地址,可回看)
1、需求所涉及的接口的背景描述
2、接口跟页面功能交互的关联关系
3、接口逻辑的流程图
4、接口文档定义
5、接口所涉及的缓存,以及缓存对应的key值,失效时间定义
6、接口所涉及的SQL,以及数据库表字段定义
7、接口历史功能验证(新增接口测试不需要)
8、接口涉及话单,短信,推送消息等描述
9、接口涉及的配置参数和开关等描述
10、接口设计的基本流程描述
11、接口涉及的正常用例测试点设计
12、接口涉及的异常用例测试点设计
二、页面测试用例设计
页面功能测试主要是由3大块的组成:
1.页面功能展示:
页面功能展示主要是校验一些页面的静态图片、字体、间距、排版等等之类的内容显示是否规范,具体的校验可以通过需求中的原型图比例标注进行校验。
2.页面跳转展示:
需要校验页面上所有可以点击的链接按钮是否都可以跳转到指定的页面,跳转过程中页面加载loading动画是否正确,具体的标准可以跟PD确认
3.页面逻辑校验:
页面展示的数据也是有逻辑的。(前端展示的状态需要跟后端配置的数据一致)
4.其他:
我们在做页面功能测试的时候也需要考虑一些异常的场景测试,暂时总结出来的主要包括几种:
数字,字母,符号,表情等输入校验
超长字符,最小字符长度验证
APP端和PC端同步操作时数据同步校验
网络连接中断后重新连接测试
三、页面测试用例编写
主要可以通过三个基础的步骤来完成:
1、测试用例分级目录:可以根据测试方案中罗列的大的测试点来进行分级,根据个人习惯来进行,尽量将同一个功能点的用例都放到同一级目录中.
2、测试用例标题描述:测试用例标题描述为这条用例功能点校验的简述,尽量用一句话来描述,不要太长.
四、接口测试用例设接口测试时涉及到的功能主要包括四大类:
接口本身的逻辑、参数校验
接口涉及的服务器的定时任务和参数配置校验
接口涉及的缓存信息、缓存加载方式、失效时间校验
数据库的job(定时)任务、存储过程、执行SQL验证
五、接口本身的逻辑、参数校验:
接口的逻辑校验,可以参照接口流程图来进行设计,一个分支需要作为一个场景去进行测试,需要覆盖到流程图里面所有的逻辑分支
接口的参数校验,可以参照接口文档中的参数定义去进行验证,需要覆盖到所有参数对应的枚举值以及错误码等信息
六、接口涉及的服务器的定时任务和参数配置校验:
服务器的定时任务配置,一般都是以Crontab方式和Crontrigger两种方式去进行配置的,测试时将任务配置到对应的时间后,查看任务是否可以正常执行即可
服务器的参数配置主要都是配置在服务器的配置文件中,配置文件一般都是以:XXX.properties文件命名,不同的配置可能会存在于不同的文件中,这个需要具体问题具体看待,测试时需要按照不同的场景去修改不同的配置参数进行验证
七、接口涉及的缓存信息、缓存加载方式、失效时间校验:
缓存信息主要是校验key-value值是否是按照需求文档中设计的要求即可
缓存加载方式:需要区分同步加载和异步加载的方式去进行测试,由于redis缓存默认配置是同步加载,如果不是特殊场景可以不需要考虑异步加载操作
失效时间验证:验证缓存在配置的时间内是否可以自动失效,redis缓存在失效后会自动清除,验证清空即可
八、数据库的job任务、存储过程、执行SQL验证
数据库的job任务一般都是调用某个存储过程去进行操作的,可以将job任务配置到某一个时间去执行即可
存储过程验证,可以在存储过程操作的指定的表中去插入数据,然后再去查看存储过程执行完成后目标表信息是否插入正确即可
执行SQL验证,查看SQL的执行计划是否符合要求即可
其他:
一个系统越大,系统中所涉及的接口也会越来越多,所以为了保证接口的稳定性以及业务的流畅性,避免一些接口修改引入的问题,接口测试时,最好是配合性能和自动化工具一起测试
九、接口测试用例编写
接口测试用例编写,主要可以通过三个基础的步骤来完成:
测试用例分级目录:根据接口流程图中的主分支来进行分级,后续的副分支再进行细化即可
测试用例标题描述:校验当前接口需要验证的场景,尽量用一句话来描述,不要太长
测试用例详细描述:用例的详细描述中也可以分为三个步骤,包括:预置条件,操作步骤,预期结果
1、预置条件:预置接口对应表的原始数据,预置接口对应的用户信息
2、操作步骤:调XXX接口,请求中传入XXX报文
3、预期结果:接口返回XXX数据,且数据库的XXX表中更新某条记录,缓存中更新某条记录,服务器中需要记录某些日志信息等
作者:wjw290313631
原文链接:
https://blog.csdn.net/weixin_42359436/article/details/83572978
干货文章推荐:
python常见面试题
APP端常见测试功能点
H5端常见测试功能点
——————— End ———————
人员招聘 / 岗位内推:
请加微信 1327239410 或 QQ1327239410
行业交流 / 加入“软件测试高端人才”微信交流群:
请加群主微信 wycwyn0711 或 ninanboy
内容投稿:
请发邮箱 wangpinqing@testin.cn
如能帮到你,为我们点个在看哦