web接口测试之GET与POST请求

news2024/9/25 9:32:50

目录

前言:

GET请求 

POST请求                             


前言:

Web接口测试中最常见的请求方法是GET和POST,它们构成了大部分的Web API请求。在接口测试开发过程中,了解它们的原理、特点和应用场景是非常重要的。在本文中,我们将详细讨论GET和POST请求的概念、区别、使用场景以及在接口测试中的应用。

关于HTTP协议,我考虑了一下觉得没必要再花一节内容来介绍,因为网上关于HTTP协议的介绍非常详细。本着以尽量避免介绍一空洞了概念与理论来介绍接口测试,我这里仍然会给出具体实例。

在此之前先简单的介绍一下基本概念:我们想要打开一个网站,首先是需要往浏览器的地址的URL输入框架中输入网地址。当我敲下回车后,通过HTTP协议,将网址传送到域名解析服务器,域名解析服务器根据网址找到对应的IP主机(系统服务器)。这个过程叫request,即请求;当IP主机拿到请求后,将相应的资源返回给用户浏览器。这个过程叫response,即响应。

当用户浏览器向系统服务器请求时,有几种方法,最常用的就是GET和POST两种方法。

在此我们来开发这样一个可以接收GET和POST请求的web应用。当然,这里就要求读者具备一定的web开发基础了。但不编程语言与web框架不是我们讨论的重点。

以flask框架的代码为例。

GET请求 

pyfl/
|---- /hello.py
|----/templates/
|----|-----------/index.html
|----|-----------/user.html

hello.py

from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
    return render_template("index.html")
if __name__ == '__main__':
    app.run(debug=True)

index.html

<h1> This is index page <h1>

启动flask容器:

访问:http://127.0.0.1:5000/

通过firebug查看GET请求信息:

当然,这个返回只是一个静态的页面,并且不需要任何参数,我们只需要判断返回是否为200即可。

扩充hello.py如下:

from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
    return render_template("index.html")
@app.route("/user/<name>")
def user(name):
    return render_template("user.html",name=name)
if __name__ == '__main__':
    app.run(debug=True)

user.html

<h1> Hell, {{name}} !<h1>

访问:http://127.0.0.1:5000/user/aaa

相比较来说,这个GET请求就复杂了一些,在请求的时候跟了一些参数(aaa),后台(hello.py)对参数了进行了接收,并且将其反回到了user.html页面中。

这个时候,我们就可以对这个参数做一些简单的测试,比较参数为空,字符,数字,脚本,sql 之类的。其实,安全测试的sql注入也是通过输参中带入sql语句入手的。

POST请求                             

pyfl/
|---- /hello.py
|----/templates/
|----|-----------/index.html

hello.py

from flask import Flask,render_template,request
app = Flask(__name__)
@app.route("/")
def index():
    return render_template("index.html")
@app.route("/login",methods = ['GET', 'POST'])
def login():
    if request.method == "POST":
        username = request.form.get('username')
        password = request.form.get('password')
        if username=="zhangsan" and password=="123":
            return "<h1>welcome, %s !</h1>" %username
        else:
            return "<h1>login Failure !</h1>"    
    else:
        return "<h1>login Failure !</h1>"
if __name__ == '__main__':
    app.run(debug=True)

index.html

<form action="/login" method="post">
    username: <input type="text" name="username">
    password: <input type="password" name="password">
    <input type="submit" id="submit">
</form>

访问:http://127.0.0.1:5000/

输入用户名,密码登录(后台hello.py判定,用户名为“zhangsan”,密码为“123”登录成功,其它帐号失败。)

Python的有一个requests库,可以很方便的模拟测试POST请求。

#coding=utf-8
import requests
s = requests
data={"username":"zhangsan","password":"123",}
r = s.post('http://127.0.0.1:5000/login', data)
print r.status_code
print r.headers['content-type']
print r.encoding
print r.text

执行结果:

200
text/html; charset=utf-8
utf-8
<h1>welcome, zhangsan !</h1>

POST接口的测试也一样,通过不输入为空,或错误的用户名密码,检查返回的内容。

 

作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=jQ7U9aFlFfNPtwTDUR5iRvU_0ZJpqQnj&authKey=VpDbgWhgOhQD%2F3fnncM8ovCA0z%2F5lztJw0ZrSFg74qMtMi9Xnp99%2FCVOWixq2%2Bny&noverify=0&group_code=574737577

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音电商发展路径:从外链种草到达人/品牌直播

复盘抖音电商发展&#xff0c;可以总结出以下几点发展特征&#xff1a; 策略重心的变化 以种草为核心&#xff0c;给电商引流站外成交&#xff08;2019 年及之前&#xff09;→ 力推达人直播但效 果一般&#xff08;2020 上半年&#xff09;→ 推品牌自播并彻底闭环&#xff0…

postgres 简单导入导出sql脚本

postgres 简单导入导出sql脚本 导出 backup选择类型 导入功能 导出 backup 选择类型 右键点击backup&#xff1a; 成功导出sql 数据文件 导入功能 cd 进入 Postgres 安装目录进入bin目录下执行一下命令 psql -d ${database_name} -h localhost -p 5432 -U postgres -f C:\…

成功案例丨借助Facebook运营海外市场的企业策略

在当今数字化时代&#xff0c;企业在拓展海外市场和赢得全球消费者的竞争中&#xff0c;社交媒体平台扮演了重要角色。其中&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;为众多企业提供了成功进军海外市场的机会。 Poppy & Finch&#xff08;虞姬家&…

创建合同pdf操作整理

使用TCPDF对合同的模板创建、盖章、水印、骑缝章、设置保护等操作。 目录 合同模板处理 创建html模板 模板赋值 创建目录 创建blade合同模板 变量改活 获取html内容 创建pdf文件 盖章处理 骑缝章处理 获取总页数 分割印章 设置骑缝章 水印设置 简单水印 每页水…

Jenkins部署报错问题:已解决

一.Jenkins不能下载插件 报错sun.security.provider.certpath.SunCertPathBuilderException sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.provider.certpath.SunCertPathBuild…

学习英语给你带来了哪些机会?

昨天文章发出后&#xff0c;J姐姐给予了一些更正&#xff0c;我希望将来也能够像她那样走出去看一看。 Y呢&#xff0c;并不是我说的那样混日子&#xff0c;了解更多之后&#xff0c;才发现他是个王者&#xff0c;顿时肃然起敬。 “一起学英语”群里大佬云集&#xff0c;希望他…

【MySQL】一文带你了解SQL

&#x1f3ac; 博客主页&#xff1a;博主链接 &#x1f3a5; 本文由 M malloc 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;LeetCode刷题集&#xff01; &#x1f3c5; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指…

《嵌入式系统设计师教程 (第2版)》学习笔记

嵌入式系统设计师教程 (第2版).pdf》链接&#xff1a;https://download.csdn.net/download/AnChenliang_1002/87864728 该资源在上传时涉及到版权问题无法上传&#xff0c;所以保留该资源仅为了日后查看时博主自己可以下载&#xff1b; 本文用来记录在学习《嵌入式系统设计师…

三亚旅拍及游玩

可选景点 ⬇️①蜈支洲岛&#xff1a;各种各样的海上项目都有&#xff0c;海岛很美&#xff0c;被称作中国马尔代夫&#xff08;144元&#xff09; ⬇️②后海村&#xff1a;很适合新手学习冲浪&#xff08;免费&#xff09; ⬇️⑤西岛&#xff1a;一座安静的文艺小岛&…

2023年6月17号英语四六级考试倒计时,这些考前准备事项一定要注意

2023年6月全国大学英语四六级考试将于6月17日&#xff08;本周六&#xff09;举行&#xff0c;冰雪为大家总结了四六级考前及考中注意事项&#xff0c;供同学们参考&#xff01; 考试时间 四级考试时间&#xff1a;6月17日上午9:00-11:20 六级考试时间&#xff1a;6月17日下午1…

爆肝整理,3个月从功能进阶自动化测试,一跃成测试卷王...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 首先先了解自动化…

GPT-4(THUDM) + LangChain >> Personalized expert AI assistant.(本地知识库教程)

GPT-4(THUDM) Langchain &#xff1e;&#xff1e; Personalized expert AI assistant. Langchain. GPT-4 LangChain简介 - 知乎 (zhihu.com) 利用LangChain和国产大模型ChatGLM-6B实现基于本地知识库的自动问答_哔哩哔哩_bilibili Github地址&#xff1a; https://github.c…

10个最佳WooCommerce电商网站测量价格计算器插件

您销售的产品需要根据大小、重量、尺寸、面积或体积定价&#xff1f;查看我们的热门WooCommerce跨境电商测量价格计算器插件列表&#xff0c;以及如何设置它们。你的客户可以轻松计算和接收定制或尺寸产品等的即时定价。 定价是任何在线商店的基本特征。就其本身而言&#xff…

ECC算法学习

ECC 一、ECC简介优缺点运用 二、算法理论基础1. 椭圆曲线的加法2. 椭圆曲线的二倍运算3. 同余运算4. 有限域5. 乘法逆元 三、算法公式1、有限域的负元2、有限域的加法&#xff0c; P Q P Q PQ3. 斜率计算&#xff08;PQ即要计算P点切线&#xff0c;需要求导&#xff09;4. 椭…

【Linux】通过 Shell 脚本修改用户密码

1. Linux 中修改用户密码 Linux 中要修改一个用户的密码通常是使用 passwd 命令来完成&#xff0c;命令格式如下。 #一般使用格式 passwd [username][注]&#xff1a;若其后不加任何用户名则表示修改当前用户的密码。 使用示例&#xff1a; 这里笔者将 im 用户的密码修改为 im…

简单的提示词操作融合微调 AI 图像

本文旨在帮助我们理解和运用稳定扩散技术对AI生成图像进行精确调整。通过本文将学习如何调整关键词的强度、消除不需要的对象以及如何混合两个关键词。 Stable Diffusion 可以直接下载秋叶大神一键安装包进行使用&#xff0c;也可以直接下git上原生下载自己部署。 百度链接 …

什么是低代码(Low-Code)?

现如今&#xff0c;我们已全面迈入智能互联网时代&#xff0c;新的技术不断迭代问世&#xff0c;也代表着新的生产力不断深入我们的生活&#xff0c;同时也是开创未来最好的原动力。那就眼下而言&#xff0c;什么样的新技术才能真正解放IT生产力&#xff0c;加速社会数字化转型…

2023/06/12 产品经理常用技术名词记录

PM懂点技术总是好的吧&#xff0c;还是要能听懂简单的专业名词。遇到就更新… — 前端 \color{green}{前端} 前端— H5 即HTML5&#xff0c;第五代超文本标记语言。泛指H5广告&#xff0c;是一种借助微信传播的营销形式。 H5页面是传统桌面网站的轻量级版本&#xff0c;支持…

Linux uinput

Linux Uinput 是一个模拟用户输入事件的内核驱动程序&#xff0c;它允许用户空间程序通过创建虚拟输入设备节点来生成模拟输入事件&#xff0c;这些事件可以是键盘、鼠标、触摸屏或其他输入设备的事件。此外&#xff0c;Uinput 还可以为虚拟输入设备设置各种属性&#xff0c;并…

U-Mail邮件系统多重措施保障用户信息安全 防范邮件泄密

电子邮件由于其具有较高的便捷性与高效性&#xff0c;已逐渐成为党政机关和企业工作人员内部联系和业务交流的主要方式之一。但其带来的诸多安全问题也引发了越来越多人的关注&#xff0c;其中最最严重的威胁是邮件泄密问题。就在刚刚过去的2022年国内外都发生了多起电子邮件造…