测试开发-一天一个面试题6️⃣之接口怎么测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试开发-一天一个面试题6️⃣之接口怎么测试相关的知识,希望对你有一定的参考价值。
写在前面
今天这个面试题可能是作为一个接口测试工程师或者服务端测试工程师面试必考的一个问题,这个问题主要考察面试者是否有过接口测试经验,能否承担一名服务端测试的工作.
介绍STAR 法则
STAR 法则是回答问题的基本法则他把回答问题分为四个步骤,这个法则可以回答问题条理清晰,思路明确,面面俱到,希望大家掌握这个法则,来应对面试中的所有问题.
- S-situation(情景)事情在什么情况下发生
- T-target (目标)要完成什么样的目标
- A-action(行动)为了完成目标所做的行动
- R-result(结果)所得到的结果
回答
S-后端开发与数据层开发完成以后,可以开始接口测试
T-测试逻辑层与数据层,确认业务是否能够正常使用
A-具体怎么做
1.接口文档-开发提供
接口文档:
接口URL地址,请求参数,请求方式,返回结果
接口文档格式:html或Word
2.接口分析-不同公司要求不同
1.只测试接口是否能够跑通,只需要考虑正常场景
2.接口场景需要全面覆盖
正常场景:
申请借款模块:
不同的申请方式,还款方式,期数······
条件组合,测试不同组合下结果是否正确
判定表的方法-每个条件组合,测试结果是否正确
参数格式的校验、等价类、边界值等等
参数定义的int类型,传输的得是int类型
参数定义的是string类型,传输数据,正常得是string,但是在开发框架里面,输入int类型,也会被强行转成string类型
异常场景
少一个必填参数
多一个参数
3.接口用例
4.执行
选择工具执行:
1.Jmeter(主流)
1.打开jmeter(1.找到bat文件运行 2.cmd输入jmeter)
2.新建线程组
3.新建HTTP请求
请求方式-get、post
请求参数-表单格式、json格式、xml格式
4.建立查看结果树
2.requests
3.postman(主流)
4.swagger
5.soupui
6.在线测试工具
5.检查对应的结果
Jmeter-建立监听器,查看结果树
requests print出来,打印结果
1.检查返回结果是否正确
2.检查逻辑结果,保存的数据是否正确
R-完成对逻辑层和数据层的检查测试
写在最后
我是小巴哥,一个陪你成长,实实在在分享 测试干货职场经验的人,欢迎关注!!!
⚡每日算法&面试题⚡一起肥学7️⃣
⚽题外话
昨天有小伙伴找我,问有很多题不会怎么办?了解完之后发现是数据结构这块还不太了解,很多知识不知道怎么建链表和栈都不太了解。我建议还是从数据结构看看把这块补上来我们再慢慢来刷题,至于怎么补如果小伙伴没有好的计划也可以来私聊我,我给大家找找资源。
⚽算法题
给你一个非负整数数组 nums ,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
你的目标是使用最少的跳跃次数到达数组的最后一个位置。
假设你总是可以到达数组的最后一个位置。
示例 1:
输入: nums = [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
示例 2:
输入: nums = [2,3,0,1,4]
输出: 2
提示:
1 <= nums.length <= 104
0 <= nums[i] <= 1000
⚽一点点思路
这个题你需要注意再哪一个位置,这个位置上的数为你的最大跳跃长度而不是必须长度。nums = [2,3,1,1,4]
为例再下标为零的时候值为二,你可以跳小于等于2的长度。不知道为啥我一下子想起来了图论里的prim
算法。哈哈哈这当然是我瞎想的了,我们今天的所用的解法被世人称为贪心算法,因为它需要再众多结果中找到最佳的那个。
⚽源码和详解
class Solution {
public int jump(int[] nums) {
int length = nums.length;
int end = 0;
//记录最大的位置是为了得到所谓的贪心最佳值,因为我们要找
//最短的跳跃当然是数值越大越好了
int maxPosition = 0;
int steps = 0;
for (int i = 0; i < length - 1; i++) {
//这里要遍历数组每一个元素来进行比较找到值最大的那个
maxPosition = Math.max(maxPosition, i + nums[i]);
//用来记录跳跃的步数条件是遍历的位置等于之前跳跃的值的位置
if (i == end) {
end = maxPosition;
steps++;
}
}
return steps;
}
}
⚽面试题
关于Mybatis的面试知识点基础类
1、什么是Mybatis?
Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC
代码和手动设置参数以及获取结果集。通过xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java对象和
statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。(从执行sql到返回result的过程)。
2、Mybaits的优点:
基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;
很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)
能够与Spring很好的集成;
提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。
3、MyBatis框架的缺点: SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。
SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
特别介绍
📣小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶
📣python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏
📣另外想学JavaWeb进厂的同学可以看看这个专栏:传送们
📣这是个面试和考研的算法练习我们一起加油上岸之路
以上是关于测试开发-一天一个面试题6️⃣之接口怎么测试的主要内容,如果未能解决你的问题,请参考以下文章