美文网首页
2.接口测试与HTTP协议

2.接口测试与HTTP协议

作者: 小小一颗卤蛋 | 来源:发表于2022-10-29 17:00 被阅读0次

    什么是接口测试?

    接口(API): 用于前后端的交互的
    接口的分类:


    接口分类
    自动化测试流程

    练习的项目:外卖系统
    项目描述:本项目基于spring boot和vue的前后端分离技术架构。功能完善,包含:后端API、用户H5手机端、管理员WEB端、商户WEB端。主要功能包括:我的商铺(卖家商铺信息管理),食品管理(商铺食品的常规操作),订单管理(订单信息管理)等

    项目框架:
    前端:vue.js
    后端:Spring Boot
    数据库层:mysql+monggodb
    数据库连接池:Druid
    缓存:Ehcache


    image.png

    HTTP请求:

    image.png

    请求报文格式:四个部分
    第一部分:请求行。独占一行的。由:请求方法、请求路径、请求协议/版本组成。
    第二部分:请求头。从第二行到第N行。由键值对 组成。可以有1对,也可以有N对。key:value
    第三部分:空行。独占一行的。由回车换行组成。
    第四部分:请求正文(请求消息体)。

    常见请求头含义:
    1、User-Agent:告诉服务器客户端的相关信息(如果是浏览器会有版本,内核等信息)
    2、referer:告诉服务器,此请求是从哪个页面上发出来(防盗链)
    3、X-Requested-With:告诉服务器这个是一个ajax请求
    4、Cookie:带给服务器的cookie信息
    5、content-type:告诉服务器消息体的数据类型
    application/x-www-form-urlencoded
    multipart/form-data
    application/json
    text/xml

    HTTP响应报文
    响应报文格式:四个部分组成
    第一部分:状态行,独占一行。由协议/协议的版本、状态码、状态描述符组成
    第二部分:响应头,从第二行到第N行。由键值对组成。
    第三部分:空行。独占一行的。由回车换行组成。
    第四部分:响应的正文

    常见响应头含义:
    1、location:告诉浏览器跳到哪里
    2、content-length:告诉浏览器回送数据的长度
    3、content-type:告诉浏览器回送数据的类型


    image.png

    简单接口测试流程

    1、确定请求方法(post,get,put,delete)
    2、确定接口url
    3、请求体
    4、请求头
    不需要写头的情况:这个接口没有特殊的头数据,或只要求写content 他type
    需要写头的情况:这个请求头里有其他接口(如:登录接口)给的数据。如:token,cookies
    5、响应
    说明:以上数据通过接口文档或抓包课获取

    import requests
    HOST = 'http://121.41.14.39:8082' #  常量用全大写 :协议+ip+端口+路径
    def login(data):
    # 1  URL
    url = f'{HOST}/account/sLogin'
    # 2 请求体
    payload =data
    # 3 请求头 (此处不需要)
    # 4 发请求
    res = requests.post(url,data=payload) # data 为表单,json为json
    # 5 响应体
    print(res.text)
    
    if __name__ == '__main__':
      test_data={'usernane':'test001','password':'ahuy5gshcbdmappwy88'}#  password为加密后数据
      login(test_data)
    

    requests库的请求类型:


    image.png

    请求相关信息:


    image.png
    image.png

    https协议代码

    #https协议
    HOST = 'https://120.55.190.222'
    import requests
    #处理https警告
    requests.packages.urllib3.disable_warnings()
    def login():
       #1- url
       url = f'{HOST}/api/mgr/loginReq'
       #2- 请求体
       payload = {'username':'auto','password':'sdfsdfsdf'}
       #3- 请求
       resp = requests.post(url,data=payload,verify = False)#不使用SSL
       return resp.text
    if __name__ == '__main__':
       res = login()
       print(res)
    

    相关文章

      网友评论

          本文标题:2.接口测试与HTTP协议

          本文链接:https://www.haomeiwen.com/subject/mragzrtx.html