| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 什么是接口测试?接口测试基础、案例及Json格式详解 -> 正文阅读 |
|
[Java知识库]什么是接口测试?接口测试基础、案例及Json格式详解 |
很多小伙伴可能会说接口真的有测试的必要吗? 我只要把功能测试好了不就ok了吗? 答案是肯定的,在中大型项目中,后端、前端多人协同开发过程中,接口测试是必要的。 什么是接口(API)测试?API全称(Application Progarmming Interface),接口是一个位于复杂系统之上能简化任务,像中间人一样不需要你了解详细的所有细节。比如用户登录页面,只需要调用登录接口,就可以达到登录系统的目的。 接口返回的数据类型都是json,json是一种通用的数据类型. 什么是接口自动化?接口自动化测试:让程序代替人为对接口项目进行自动化验证测试的过程 接口测试是一种功能测试,也是一种自动化测试。 功能测试的角度上说只要管输入数据后得到的输出结果是怎么样的,从执行方式上来讲接口必须要借助工具来实现。 接口测试与性能测试之间存在接口性能测试,主要通过jmeter来进行压测。 接口测试的意义
功能测试必须要等到系统提供可测试的界面后才能进行
接口测试的介入可以更早地发现并解决bug,使得留到功能测试阶段被修复的bug减少,从而缩短整个项目的上线时间
接口测试可以更简单更全面地覆盖到底层的代码逻辑,从而可以发现一些隐藏的bug. 只针对UI层的功能进行测试,就很难发现后端系统对一些异常情况的处理能力.
接口测试常用工具:
接口的请求和相应原理针对这一部分所需掌握的知识HTTP协议、会话技术,属于基本常识了,有不了解的同学可自行学习。 JSON语法及数据格式什么是JSON? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),JSON是轻量级的文本数据交换格式(数据传递)–xml JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,JSON 解析器和 JSON 库支持许多不同 的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。 语法规则: JSON 语法是 JavaScript 对象表示语法的子集。
数据格式: 接口测试流程1.接口文档必备要素 接口说明 调用url 请求参数 请求方式 请求参数、参数类型、请求参数说明 返回参数说明 2.接口请求报文拼接方式 URL拼接: url拼接规则为:Url?param1=value1?m2=value2 问号前面是请求url,后面是请求参数和参数值,多个参数用&连接 如: JSON串: 需要测试工具完成,如postman、jmeter等。其传参方式符合json的组合规则。 3.接口类型 http api接口 http api 接口是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式,返回报文一般都是json串,请求方式有get、post等方式, 这两种为最常用的请求方式。 webservice接口 webservice 接口是走soap协议通过http传输,请求报文和返回报文都是xml格式,需要通过工具才能进行测试。 数据库访问接口 数据库访问接口是走jdbc方式连接数据,对数据库进行增删改查操作,需要使用工具进行测试。 GET、POST区别: get使用url或cookie传参,post将数据存放在body中 get的url在长度上有限制,post数据可以很大 post比get更安全,因为数据在地址栏上不可见 一般get用于获取数据,post用于发送数据 HTTP状态码: 200 2开头表示请求发送成功 300 3开头表示重定向 400 4开头表示客户端发送请求有语法错误 401 访问页面未授权 403 无权访问 404 无此页面 500 5开头表示服务器异常 500 服务器内部异常 504 服务器端超时,未返回结果 1.第一个案例(发送一个get请求)
输出结果如下:
输出结果如下: 3.第三个案例(进行接口状态码断言)
输出结果如下:
输出结果如下:
输出结果如下: 增加config.py主要存放接口
增加testapi.py
输出结果如下:
通用接口用例设计通过性验证 要保证这个接口功能是正确的,按照接口文档上的参数,正常传入,查看是否可以返回正确的结果 参数组合 如:现有一个操作商品的接口,有个字段type。type传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,这样就要测参数组合,type传1的时候,只传商品名称能不能修改成功;id、名称、价格都传的时候能不能修改成功 接口安全: 绕过验证 如购买了一个商品,价格是300元,提交订单时候,把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加? 绕过身份授权 如修改商品信息接口,必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,传一个其他的卖家能不能修改成功 参数是否加密 如登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息。 加密规则是否容易破解 密码安全规则 对密码的复杂程度校验 异常验证 不按照接口文档上的要求输入参数,来验证接口对异常情况的校验 如必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11 必传非必传、参数类型、入参长度。 最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。 如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦! 好文推荐转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 16:54:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |