接口测试(学习笔记一)

  • 接口测试价值
  • tcp协议
  • RPC协议
  • restful架构
  • Requests

接口测试价值

接口测试,检查数据的交换,传递和控制管理过程,绕过了客户端,直接对服务端进行测试。
见下图,对行业的各种测试进行分层,越往上发现bug的时间越晚,成本越高。接口测试相比UI测试,可以更早发现问题,更快的质量反馈。

自制简易计算机网络图:

tcp协议

tcp协议是在传输层中,一种面向链接的、可靠的、基于字节流的传输层通信协议。
tcp udp 的区别,是否面向链接。udp发出去就不管了,就像视频通话。
tcp建立链接,错误重传,拥塞控制——3次握手,4次挥手

  • 3次握手
    信道是不可靠的,在发送数据之前,要确保信道稳定。
    第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认。
    第二次握手:服务器收到syn包,确认客户的SYN,同时自己也发送一个SYN包,服务器进入SYN_RECV状态。
    第三次握手:客户端收到服务器的包之后,像服务器发送确认包,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成3次握手,成功连接。
    client:hello
    server:hello
    client:nice to meet you
  • 4次挥手
    第一次挥手:客户端向服务器发送FIN,请求关闭数据传输。
    第二次挥手:服务器收到FIN,向客户端发送ACK,其中ack的值等于FIN+SEQ
    第三次挥手:服务器向客户端发送FIN,告诉客户端应用程序关闭。
    第四次挥手:客户端收到FIN,回复ACK给服务器端,其中ack的值等于FIN+SEQ
    client:request to turn off data transfer
    server:OK
    server:Good Bye
    client:Good Bye

RPC协议

以本地代码调用的方式实现远程执行(只需要写代码调用API就可以了,不需要关注通信传输细节)
本地调用方法——序列化——远程通讯传输——服务器收到请求执行代码——返回结果——反序列化
Dubbo
gRPC
Thrift

restful架构

浏览器与服务器交互规则,软件架构风格
get获取资源
post 新增、更新资源
put 更新资源
delete 删除

  • 每个URI代表一种资源
  • 客户端和服务器之间,传递这种资源的某种表现层
  • 客户端通过四个HTTP动词,对服务器端资源进行操作,实现表现层状态转化

Requests

Requests文档

import requestsres = requests.get('https://cn.bing.com/hp/api/model')
print(res.status_code)
print(res.headers)
print(res.encoding)
print(res.text)
print(res.json())
print(res.url)
print(res.cookies)
print(res.request)
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get(url, params=payload)payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post(url, data=payload)payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post(url, json=payload)xml = '''<xml...>'''
r = requests.post(url, data=xml)files={'file':open('xxx.txt','rb')}
r = requests.post(url,files=files)headers = {'user-agent':'my-app/0.0.1'}
r = requests.get(url,headers=headers)cookies = dict(cookies_are='working')
r = requests.get(url,cookies=cookies)

CSDN>Python技能树>网络爬虫>requests>Python-requests的使用

接口测试基础python+requests相关推荐

  1. 接口测试(python+requests)

    基本接口响应过程 import requests# 请求数据准备 url = "https://tgc.alibaba-inc.com/page/commodity-group" ...

  2. 全网最详细的Python+Requests接口测试教程:Fiddler抓包工具

    本篇涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容. 文章是针对零基础入门接口测试和py ...

  3. Python+Requests接口测试教程(1):Fiddler抓包工具

    本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容. 刚买须知:本书是针对零基础入门接口 ...

  4. python+requests接口测试

    第一章 HTTP网络协议 在接口的测试过程中,所有的数据交互都是基于网络协议来进行交互的.目前业内最为主流的是HTTP网络协议.占据有90%左右比例 在系统的交互过程中,HTTP网络协议是如何实现交互 ...

  5. python+requests对app和微信小程序进行接口测试

    对于web端和app端的接口测试来说,他们都是通过请求方法,url和传递的body参数进行接口请求,区别web和app的区别就是header请求的不同.不同的地方在于header中的User-Agen ...

  6. 接口测试文件上传(python+requests)

    在做接口测试的时候,往往会有需要文件上传的接口,今天教大家使用apipost接口测试工具和python+requests脚本进行接口测试. 一.使用python+requests python+req ...

  7. python扫描app接口_[分享】python+requests对app和微信小程序进行接口测试

    对于web端和app端的接口测试来说,他们都是通过请求方法,url和传递的body参数进行接口请求,区别web和app的区别就是header请求的不同.不同的地方在于header中的User-Agen ...

  8. 由浅入深----python+requests+unittest执行自动化接口测试

    由浅入深----python+requests+unittest执行自动化接口测试 一.安装requests.xlrd.json.unittest库 1.pip 命令安装: 2.pycharm里安装 ...

  9. 基于Python Requests的数据驱动的HTTP接口测试

    发表于:2017-8-30 11:56  作者:顾翔   来源:51Testing软件测试网原创 http://www.51testing.com/html/69/n-3720769-2.html 1 ...

最新文章

  1. 如何设置窗口立即刷新显示
  2. 如何在 Windows XP 中设置、查看、更改或删除文件和文件夹的特殊权限
  3. Java虚拟机:class类文件结构
  4. 交叉编译openssl不修改Makefile的方法
  5. 计算机中丢失mpr.dll,mprmsg.dll
  6. 软工团队 - 系统设计
  7. shell简单的交互式脚本
  8. Android DownloadManager 的使用
  9. 【吴恩达机器学习】学习笔记——4多元线性回归
  10. 如何解决It's likely you're attempting to run Eclipse using the JRE instead of the JDK
  11. 大学计算机基础发送邮件,东南大学《大学计算机基础》实验16邮件合并.pdf
  12. 二次方程c语言计算器,解方程计算器
  13. Mac大小写切换需长按caps lock键解决办法
  14. 【3款文献阅读的插件】
  15. python下载收费视频_用Python下载知乎视频,非常实用
  16. codeforces 1562 A. The Miracle and the Sleeper
  17. 全链路UI设计师了解一下
  18. Unity - Timeline 之About Timeline(关于Timeline)
  19. 深大数据库系统实验4——Using mysql and php to implement the Car Share Reservation Database system
  20. 救救我吧,今年27岁,想转行学大数据开发

热门文章

  1. mysql 集合 思想_面向集合的思维编写SQL(第九篇 --- “我说的是:苹果柿子李子栗子梨的那个橘子啊”)...
  2. 易语言助手用法与方便之处
  3. Linux文件类型发布啦!
  4. 图片合成视频,视频文件过大了,python 改变视频的码率, 压缩视频文件
  5. 分布式架构的几种实现方式
  6. 勒索病毒SARA,请勿用于非法用途。
  7. 如何设置对输入字段的关注?
  8. 4 ARM PEG20K MAL
  9. 详解Node.js API系列 Module模块(2) 案例分析
  10. mes系统是什么?mes系统的主要功能有哪些?