• 接口测试学习笔记(基础知识、Jmeter、Postman)


    目录

    前言

    一、基础知识:

    二、postman接口测试

    三、Jmeter接口测试 :jmeter 开源的java开发的一个压力测试工具。

    总结

    重点:配套学习资料和视频教学


    前言

    本文主要关于接口测试,涉及到postman和jmeter两个工具

    一、基础知识:

    1、接口就是把client(前端)和server(后端)端联系起来的(或者说各种花式操作数据库)。服务器也是一台电脑,只是性能比较高的一台电脑。

    2、接口返回的数据都是json,(json,是一种通用的数据类型,以键值对 key-value 的数据形式来保存的)。

    3、接口测试其实就是 功能测试,在接口测试之前,得要有接口文档。(问开发要的)

    4、post请求和get请求没有很大的区别,get请求一般用于获取数据,post请求一般用于发送数据:

    如果是get请求:不借助任何的工具,用浏览器就可以发请求,如:http://118.00.0.00/api/user/stu_info?stu_name=小黑

    5、cookie:就是放在你本地的一个键值对。如:

    niuhanyang hahaha12345
    niuhanyang:sfjsksdf4234sdfw34

    session:就是放在服务端的一个键值对。 如:

    niuhanyang:sfjsksdf4234sdfw34


    比如 登录, 登录成功后,本地(浏览器)就会保存键值对
    浏览器发送请求的时候,就会自动把键值对发过去服务端进行对比

    若对不上服务端的键值对,就会让你重新登录

    session过期 也会让你重新登录
     

    默认永久生效的。不过一般都会设置过期时间限制。

    token 其实就是Cookie里面保存的一个键。

    6、http请求分为两个部分:请求头和请求体

    请求头里面呢是一些额外的信息,比如说用的什么浏览器,cookie
    请求体里面传的是具体的数据。

    请求头 header :
    额外的信息
    浏览器
    cookie
    需要什么样的数据

    请求体 body :
    username=xxx
    file=aa.py

    7、

    get请求只有请求头,是没有请求体的。
    它的数据直接放在url里面的,post请求数据是放在body里面的,get请求有长度限制,post请求没有。

    在以前的时候技术不好,有长度限制。
    现在早就没有了。
    get请求没有post请求安全。
    只要通过抓包,post请求的数据一样也可以看到。

    8、

    功能测试测的就是业务逻辑。

    server端测试。
    1、接口测试就是功能测试。
    2、关注业务逻辑
    3、正常、异常的,就不是按照接口文档上要求的来

    http 状态码:
    200 请求成功
    302 重定向
    404 客户端发出去的请求不合法
    500 服务端有问题

    9、、进行接口测试,必需的是接口文档,文档主要包含以下几个部分:
    1、URL
    2、请求方式(一般为post或者get)
    3、请求参数说明
    4、返回参数说明
    5、请求、返回示例
    6、状态码说明

    二、postman接口测试

    示例1 :GET请求 :

    获取所有学生信息  

    简要描述:

    • 这个接口是为了说明怎么添加header信息的

    请求URL:

    • http://URL地址/api/user/all_stu

    请求方式:

    • get

    需要添加header信息,key为Referer value 为http://XXXX/

    参数:

    返回参数说明

    参数名类型说明
    error_codeint错误编码,0为操作成功
    msgstring提示信息

    参数及返回示例 

    示例2: POST请求:

    登录接口

    简要描述:

    • 登录接口

    请求URL:

    • http://URL地址/api/user/login

    请求方式:

    • post

    参数:

    参数名必选类型说明
    usernamestring用户名
    passwdstring密码
    1. 登陆用户名:XXXXX
    2. 密码:aA123456

    返回示例

    1. {
    2. "error_code": 0,
    3. "login_info": {
    4. "userId": 1,
    5. "sign": "d58e3582afa99040e27b92b13c8f2280",
    6. "login_time": "20171207113501"
    7. }
    8. }

    返回参数说明

    参数名类型说明
    error_codeint错误编码,0为操作成功
    login_infoobject登录对象信息
    userIdint用户id
    signstring签名
    login_timestring登录时间

    参数及返回示例 

    示例3:POST请求,添加Cookie

    学生金币充值

    简要描述:

    • 学生金币充值接口,这个接口是为了讲添加cookie以及身份验证的

    请求URL:

    • http://URL地址/api/user/gold_add

    请求方式:

    • post

    参数:

    该接口有权限验证,需要admin用户才可以做操作,需要添加cookie

    cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign

    参数名必选类型说明
    stu_idint学生id
    goldint金币数量

    返回示例

    1. {
    2. "error_code": 0,
    3. "msg":"充值成功!"
    4. }

    返回参数说明

    参数名类型说明
    error_codeint错误编码,0为操作成功
    msgstring提示信息

    请求参数及返回参数示例 

    三、Jmeter接口测试 :jmeter 开源的java开发的一个压力测试工具。

    为什么要使用JMeter 

    • 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件
    • 支持接口测试,压力测试等多种功能,支持录制回放,入门简单
    • 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
    • 多平台支持,可在Linux,Windows,Mac上运行

    jmeter查看结果树乱码
    1、在jmeter的bin目录下找到jmeter.properties这个文件
    添加上
    sampleresult.default.encoding=utf-8
    2、重启jmeter
    jmeter body data里面有乱码怎么解决
    1、在jmeter的bin目录下找到jmeter.properties这个文件
    添加上
    jsyntaxtextarea.font.family=Hack
    2、重启jmeter
    jmeter参数化
    1、用户定义的变量
    2、函数助手里面的
    __random
    __counter
    __time
    3、从文件里面读
    如果文件不写绝对路径,只写一个文件名,那么你就把你的文件
    放到jmeter的bin目录下就ok了 

    4、

    关联:
    1、调用第一个接口,然后从这个接口的返回数据里面拿到某个值
    2、放到第二个接口里面来用。

    5、

    表示时间
    1、格式化好的时间 20180506185922
    2、时间戳 从计算机发明那一天到现在过了多少秒
    jmeter是java开发的,Java里面的时间戳默认是精确到毫秒

    所以你要除以1000才是真正的时间戳

    关联:
    1、调用第一个接口,然后从这个接口的返回数据里面拿到某个值
    2、放到第二个接口里面来用。

    一、添加线程组 :

    如下图所示,右击“测试计划”>添加>Threads(Users)>线程组。这里xmeter君需要解释一下“线程组”的意思:JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统


     

    二、添加HTTP请求:加入实际被测页面

    总结

    感谢每一个认真阅读我文章的人

    那么在这里我也精心准备了软件测试、自动化测试的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的点击下方名片加我VX与我一起学习交流。谢谢大家。

  • 相关阅读:
    第04篇:Mybatis代理对象生成
    手机app测试用例怎么写?手机app测试点有哪些?
    微服务 | Springboot整合GateWay+Nacos实现动态路由
    聊一聊微服务常见配置中心工作原理
    spyglass cdc检查约束
    探讨Morest在RESTful API测试的行业实践
    Redis 3 - 集群
    F. Kirei and the Linear Function(思维 + 哈希 + 预处理)
    连续仨月霸占牛客榜首,京东T8呕心巨作:700页JVM虚拟机实战手册
    [.NET学习笔记] - Thread.Sleep与Task.Delay在生产中应用的性能测试
  • 原文地址:https://blog.csdn.net/MXB1220/article/details/126492934