当前位置:网站首页>Do you know the basic process and use case design method of interface testing?
Do you know the basic process and use case design method of interface testing?
2022-08-11 07:52:00 【love coriander】
一、接口测试的基本信息
1、常用的两种接口:webservice接口和http api接口
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,可以用soupui、jmeter等工具进行测试.
http api接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报
文一般都是json串,有get和post等方法,可以用postman、jmeter等工具进行测试.
2、接口测试的必要性
可以发现很多页面上操作发现不了的bug;
检查系统的异常处理能力;
检查系统的安全性、稳定性
3、接口测试流程
需求评审,熟悉业务和需求 → 开发提供接口文档 → 编写接口测试用例 → 用例评审 → 提测后开始测试 → 提交测试报告
4、接口规范文档
接口文档至少包括:
(1)接口说明
(2)调用url
(3)请求方法(get\post)
(4)请求参数、参数类型、请求参数说明
(5)返回参数说明
5、GET和POST请求
如果是get请求的话,直接在浏览器里输入就行了,只要在浏览器里面直接能请求到的,都是get请求,如果是post的请求的话,就不行了,就得借助工具来发送.
GET请求和POST请求的区别:
(1)GET使用URL或Cookie传参.而POST将数据放在BODY中.
(2)GET的URL会有长度上的限制,则POST的数据则可以非常大.
(3)POST比GET安全,因为数据在地址栏上不可见.
(4)一般get请求用来获取数据,post请求用来发送数据.
其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的.所以上面这些面试的时候你说出来就行了.
其实没有什么太大的区别,最大的区别就是get请求只能通过url传参
6、http状态码
(1)200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了.
(2)300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了.
(3)400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面.
(4)500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果.
二、接口测试用例设计
1、通过性验证;参数组合;异常验证(必传非必传,参数类型,参数长度);业务逻辑验证(如:登录失败5次,需要等待15分钟再登录)
2、接口安全:
(1)绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
(2)绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
(3)参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解.
(4)密码安全规则,密码的复杂程度校验
3、接口测试模板
(1)项目 是哪个项目的
(2)模块 这个接口是属于哪个功能模块的
(3)用例id
(4)接口名称
(5)用例标题 用例是干嘛的
(6)请求方式 GET/POST
(7)请求url url地址
(8)请求参数
(9)前置条件 有依赖的时候,比如说要测登录失败3次的
(10)结果验证 预期结果
(11)请求报文
(12)返回报文
(13)测试结果 通过/失败
(14)测试人员
三、测试工具postman和jmeter
1、post请求,json入参
postman的json入参
jmeter的json入参
2、权限验证
postman权限验证
3、header
postman添加header
Jmeter选择选择HTTP信息头管理器,添加header信息;
选择HTTP信息头管理器
4、cookie
postman添加cookie
Jmeter添加cookie,“线程组 → 添加 → 配置元件 → HTTP Cookie 管理器” 来添加cookie;
jmeter添加cookie
5、上传文件
postman上传文件
jmeter上传文件
6、jmeter参数化、正则表达式和JDBC
(1)参数化三种方式:选项→函数助手对话框;测试计划中添加用户变量;通过文件获取变量值.
(2)正则表达式
(3)JDBC
添加配置元件“JDBC Connection Configuration”,添加sampler中的JDBC Request;
注:JDBC元件和请求里Variable Name参数必须相同.
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路.
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
边栏推荐
猜你喜欢
DDR4内存条电路设计
1091 N-自守数 (15 分)
如何选择专业、安全、高性能的远程控制软件
2022年中国软饮料市场洞察
1036 Programming with Obama (15 points)
Redis source code-String: Redis String command, Redis String storage principle, three encoding types of Redis string, Redis String SDS source code analysis, Redis String application scenarios
TF中的四则运算
Test cases are hard?Just have a hand
【软件测试】(北京)字节跳动科技有限公司终面HR面试题
Use tf.argmax in Tensorflow to return the index of the maximum value of the tensor along the specified dimension
随机推荐
1002 Write the number (20 points)
【LeetCode】Summary of linked list problems
分布式锁-Redission - 缓存一致性解决
关于#sql#的问题:怎么将下面的数据按逗号分隔成多行,以列的形式展示出来
Use tf.argmax in Tensorflow to return the index of the maximum value of the tensor along the specified dimension
How to choose professional, safe and high-performance remote control software
1106 2019 Sequence (15 points)
js根据当天获取前几天的日期
动态代理学习
4.1-支持向量机
3.2-分类-Logistic回归
1061 True or False (15 points)
恒源云-Pycharm远程训练避坑指南
2021-08-11 for循环结合多线程异步查询并收集结果
Pinduoduo API interface
联想集团:2022/23财年第一季度业绩
求职简历这样写,轻松搞定面试官
流式结构化数据计算语言的进化与新选择
2022年中国软饮料市场洞察
3.1-分类-概率生成模型