当前位置: 首页 > news >正文

软件测试学习笔记丨curl命令发送请求

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/32332

一、简介

  • cURL是一个通过URL传输数据的,功能强大的命令行工具。
  • cURL可以与Chrome Devtool工具配合使用,把浏览器发送的真实请求还原出来,附带认证信息,脱离浏览器执行,方便开发者重放请求、修改参数调试,编写脚本。
  • 也可以单独使用,根据自己的需求构造请求调整参数,构造多种接口测试场景。

二、环境安装

  • Chrome DevTools(Chrome开发者工具)是内嵌在Chrome浏览器里,一组用于网页制作和调试的工具。
  • 在测试过程中,也常常作为一个简单的抓包工具。

1、选择右上角Chrome菜单 → 更多工具 → 开发者工具,或者使用快捷键F12:

2、右键,选择检查/审查元素:

3、在Network面板中,查看通过网络请求的详细信息:

三、常见用法

3.1 从浏览器copy

1、右键菜单,选择Copy → copy as curl,复制请求内容转换为cURL命令;

2、将命令copy在gitbash或bash上运行,则会看到返回信息;

3、对上面命令进行细化,加入-v参数,可以打印详细的内容,用2>&1将标准错误重定向到标准输出,发送此命令将得到细化后的内容。

$ curl 'https://service.tutorial.hogwarts.ceshiren.com/mock/L3/tutorial/%E4%BD%BF%E7%94%A8curl%E5%8F%91%E9%80%81%E8%AF%B7%E6%B1%82/' \-H 'Referer: https://service.tutorial.hogwarts.ceshiren.com/mock/L3/tutorial/%E6%8A%93%E5%8C%85%E5%88%86%E6%9E%90tcp%E5%8D%8F%E8%AE%AE/' \-H 'Upgrade-Insecure-Requests: 1' \-H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36' \-H 'sec-ch-ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"' \-H 'sec-ch-ua-mobile: ?0' \-H 'sec-ch-ua-platform: "Windows"'\
> compressed -v 2>&1

3.2 其他常用命令

  • 发起GET请求:
curl "https://httpbin.testing-studio.com/get" -H "accept: application/json"
  • 发起 POST 请求:
curl -X POST "https://httpbin.testing-studio.com/post" -H \
"accept: application/json"
  • Proxy 的使用:
curl -x 'http://127.0.0.1:8080' "https://httpbin.testing-studio.com/get"

  • curl 命令常用参数
参数含义
-H消息头设置
-u用户认证
-d表示来自于文件
–data-urlencode对内容进行url编码
-G把data数据当成get
-o写文件
-xhttp代理、socks5代理
-v打印更详细的日志
-s关闭一些提示输出
–help查看帮助

四、实战

1、篡改请求头信息,将 User-Agent 改为“testing-studio”

curl -H "User-Agent:testing-studio" "http://www.baidu.com" -v

在这里插入图片描述

2、在企业微信中通过 curl 命令创建标签,这是一个 post 请求,通过 --data 参数传递 tagname 和 tagid。

# token为个人生成,需要替换
curl -H "Content-Type: application/json" -X POST \
--data '{"tagname": "hogwarts","tagid": 13}' \
https://qyapi.weixin.qq.com/cgi-bin/tag/create?access_token=$token

3、认证,通过 put 上传到 ElasticSearch ,使用 --user 进行用户认证。

# ES_HOST index id content 均为变量,需替换
curl -X PUT "$ES_HOST/$index/_doc/$id?pretty" \--user username:password \-H 'Content-Type: application/json' \-d "$content"

4、向雪球发起股票搜索

url=http://www.baidu.com## get请求加json解析 
curl -s 'https://xueqiu.com/stock/search.json?code=sogo&size=3&page=1' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Accept: application/json, text/plain, */*' -H 'Sec-Fetch-Dest: empty' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36' -H 'elastic-apm-traceparent: 00-760301b0a132e9a4c0f5ac7448a3419e-8823be75504fc61f-00' -H 'Sec-Fetch-Site: same-origin' -H 'Sec-Fetch-Mode: cors' -H 'Referer: https://xueqiu.com/k?q=sogo' -H 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' -H 'Cookie: device_id=24700f9f1986800ab4fcc880530dd0ed; cookiesu=841584103115161; aliyungf_tc=AQAAAIPytE8aVQoAXhjf3cw3R+j5DD/s; acw_tc=2760824b15851452106833674e25941ad47588d5d7ded79b38a04dad8f9444; xq_a_token=2ee68b782d6ac072e2a24d81406dd950aacaebe3; xqat=2ee68b782d6ac072e2a24d81406dd950aacaebe3; xq_r_token=f9a2c4e43ce1340d624c8b28e3634941c48f1052; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTU4NzUyMjY2MSwiY3RtIjoxNTg1MTQ1MTYxMDIwLCJjaWQiOiJkOWQwbjRBWnVwIn0.TPrw6_M2Th9QTVz5spwUybqN1790nJANu9kxXl4GfNb1eQ2p2zD43CStgogOGQ8yRXYmSCfURp0343wgjnnCdnQX5698Jl-brdP94wiYKwv11q8QjBYMXFWJGRj0g69C2nxVrRF8K-ETGEked3KjYfk8Xy2wPuZtyGUhORWeCvMhmBdcRKIlWj4d7wp-w_LjMbSLigJAT29F03wBZIxR0r3eMNUhUsXh8dCsWNb6wzhtg8dT4gcd91mQmR5ToR_SFrzQfOopY4vQGcaOHWaAwUMPLUopZwD4ajWzm1kpoBZnf_n_9uBfT4j0nGk95E8J8EmTfBlq-1p019xkhgp87w; u=431585145210698; Hm_lvt_1db88642e346389874251b5a1eded6e3=1583285031,1584102200,1585145180; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1585145192' --compressed | jq
{"q": "sogo","page": 1,"size": 3,"stocks": [{"code": "SOGO","name": "搜狗","enName": "","hasexist": "false","flag": null,"type": 0,"stock_id": 1029472,"ind_id": 0,"ind_name": "通讯业务","ind_color": null,"_source": "sc_1:1:sogo"}]
}#post请求
curl 'http://sonarqube.testing-studio.com:9000/api/authentication/login' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Accept: application/json' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: http://sonarqube.testing-studio.com:9000' -H 'Referer: http://sonarqube.testing-studio.com:9000/sessions/new' -H 'Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' -H 'Cookie: _ga=GA1.2.232181868.1566982077; experimentation_subject_id=IjNlYzgxODQ1LTU2MDAtNGIyNy1iNTgzLTE1MzRkY2IwMDI0ZSI%3D--b1f29d33f6a2c85a81be66e4774d437f710c102f; _gid=GA1.2.482544306.1585051015' --data 'login=admin&password=1234' --compressed --insecure#百度的一个url提交脚本
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls"#对参数编码并发送get请求curl -G $url  \--data-urlencode "current=$current" \--data-urlencode "pageSize=$pageSize" #认证与put上传都ElasticSearch里curl -X PUT "$ES_HOST/$index/_doc/$id?pretty" \--user username:password \-H 'Content-Type: application/json' \-d "$content"#查看邮箱
curl -s --user $mail_username:$mail_password "imaps://imap.exmail.qq.com/inbox?all"

在这里插入图片描述

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)

相关文章:

  • 前端框架的选择与考量:一场技术的盛宴
  • 电缆缺陷检测系统源码分享
  • 网页设计html心得
  • 数据对接 模板设计模式的使用
  • latex设置背景颜色
  • IMDB影评情感分析项目
  • Elasticsearch深度攻略:核心概念与实践应用
  • iwebsec靶场 解析漏洞通关笔记2-Nginx解析漏洞
  • 【YashanDB知识库】YashanDB-OCI-快速上手
  • selenium 显示等待12种预置条件包括定制等待条件
  • 如何改变音频声音大小?关于改变音频大小的方法介绍
  • 线程与线程安全,生产消费者模型
  • Python+appium自动化+夜神模拟器inspector部署验证
  • 【工具类】证书自动续签免费版 正式发布
  • fiddler抓包07_抓IOS手机请求
  • create-react-app项目添加less配置
  • crontab执行失败的多种原因
  • Docker下部署自己的LNMP工作环境
  • JAVA之继承和多态
  • leetcode386. Lexicographical Numbers
  • vue 个人积累(使用工具,组件)
  • 大型网站性能监测、分析与优化常见问题QA
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 警报:线上事故之CountDownLatch的威力
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 删除表内多余的重复数据
  • 通过npm或yarn自动生成vue组件
  • 异步
  • 在Docker Swarm上部署Apache Storm:第1部分
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #1015 : KMP算法
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • %@ page import=%的用法
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (solr系列:一)使用tomcat部署solr服务
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (第一天)包装对象、作用域、创建对象
  • (二)linux使用docker容器运行mysql
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (黑马点评)二、短信登录功能实现
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (新)网络工程师考点串讲与真题详解
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Project Open Day(2011.11.13)
  • .NET是什么
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • @AliasFor注解
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚