本书内容来自作者多年从事接口测试的经验总结,贴近实际,能帮助读者解决实际工作中的难题。本书的主要内容有HTTP的基础知识;如何使用Fiddler来抓HTTP包;如何分析HTTP包;如何通过JMeter和Postman等发送HTTP包,从而实现软件自动化测试和接口的自动化测试;如何使用抓包工具来实现安全测试和性能测试等;几个日常生活中应用比较广泛的综合实例。
本书图文并茂、实例丰富,方便读者参考并动手实践,适合前端开发工程师、测试工程师、线上故障技术人员、接口开发人员和Web开发人员阅读。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | HTTP抓包之接口自动化测试 |
分类 | 人文社科-社会科学-语言文字 |
作者 | 肖佳 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 内容推荐 本书内容来自作者多年从事接口测试的经验总结,贴近实际,能帮助读者解决实际工作中的难题。本书的主要内容有HTTP的基础知识;如何使用Fiddler来抓HTTP包;如何分析HTTP包;如何通过JMeter和Postman等发送HTTP包,从而实现软件自动化测试和接口的自动化测试;如何使用抓包工具来实现安全测试和性能测试等;几个日常生活中应用比较广泛的综合实例。 本书图文并茂、实例丰富,方便读者参考并动手实践,适合前端开发工程师、测试工程师、线上故障技术人员、接口开发人员和Web开发人员阅读。 作者简介 肖佳,Vmware不错测试工程师,博客园知名博主(网名小坦克),《HTTP抓包实战》一书的作者,软件测试培训构“佳猫教育”创始人;从事软件开发测试工作十余年,有丰富的手动测试和自动化测试经验;个人博客阅读量已经超过500万,乐于分享,善于用浅显的语言来讲解技术。 目录 第 1章 抓包的用处\t1 1.1 Fiddler抓包的应用\t1 1.2 学习HTTP\t2 1.2.1 HTTP请求的结构\t3 1.2.2 HTTP响应的结构\t3 1.3 爬虫\t3 1.4 Fiddler在测试中的作用\t5 1.4.1 抓包用于性能测试\t5 1.4.2 抓包用于安全测试\t5 1.4.3 抓包用于接口测试\t6 1.4.4 大量制造测试数据\t6 1.4.5 异常测试\t6 1.4.6 排除故障和定位Bug\t6 1.5 前端开发人员使用Fiddler调试Web\t8 1.5.1 后端接口Mock\t8 1.5.2 AJAX调试\t9 1.5.3 线上调试\t9 1.6 后端开发人员使用Fiddler抓包\t9 1.7 安全测试\t9 1.8 检查网站的简单问题\t10 1.8.1 Fiddler检查404错误\t10 1.8.2 Fiddler检查大响应\t10 1.9 自动化小工具的开发\t11 1.9.1 购票助手\t11 1.9.2 自动申请账号工具\t12 1.9.3 Fiddler找回密码\t12 1.9.4 网络游戏助手\t13 1.10 概念的区别\t13 1.10.1 抓包和录制的区别\t13 1.10.2 自动化测试和爬虫的区别\t13 1.10.3 自动化测试和外挂的区别\t13 1.11 本章小结\t13 第 2章 Fiddler如何抓包\t14 2.1 Fiddler必须要做的3个设置\t14 2.1.1 第 1个设置:在Fiddler中安装证书\t14 2.1.2 第 2个设置:自动解压HTTP响应\t14 2.1.3 第3个设置:隐藏“Tunnel to”请求\t15 2.2 不允许抓包\t16 2.2.1 某些App抓不到包\t16 2.2.2 HTTP请求和响应全部加密\t16 2.2.3 不让抓包\t16 2.3 Fiddler抓不到包\t17 2.3.1 Fiddler的抓包开关\t17 2.3.2 浏览器抓不到包\t17 2.3.3 能抓HTTP不能抓HTTPS的请求\t18 2.3.4 抓不到手机中的包\t19 2.3.5 经过上面的设置,还是抓不到包\t20 2.3.6 在macOS中抓包\t20 2.3.7 Fiddler证书安装不成功\t20 2.3.8 iOS 10.3以上,手动信任证书\t21 2.4 Fiddler包太多找不到自己想要的\t22 2.4.1 停止抓包\t22 2.4.2 只抓手机,不抓本地的包\t22 2.4.3 过滤会话\t23 2.4.4 只抓特定的进程\t23 2.4.5 观察URL和HOST\t23 2.4.6 查看进程发包\t24 2.5 HTTPS是否安全\t24 2.6 计算机连接手机热点抓包\t24 2.7 用Fiddler测试App升级\t25 2.7.1 App升级原理\t25 2.7.2 App升级的测试\t26 2.7.3 坚果云的升级\t26 2.8 短链接\t27 2.8.1 短链接原理解析\t27 2.8.2 使用短链接\t27 2.8.3 用Fiddler抓包短链接\t28 2.9 本章小结\t28 第3章 Session分类和查询\t29 3.1 Session的概念\t29 3.2 为什么Fiddler中有这么多Session\t29 3.3 Session的类型\t30 3.4 搜索Session\t31 3.4.1 搜索登录的会话\t31 3.4.2 在请求搜索框中搜索\t32 3.5 用命令行工具查询Session\t32 3.5.1 通过select命令过滤\t32 3.5.2 通过allbut过滤\t33 3.5.3 通过“ ”过滤\t33 3.5.4 通过Session类型的大小来过滤\t34 3.5.5 通过“=HTTP方法”过滤\t35 3.5.6 通过@Host过滤\t35 3.5.7 通过“=状态码”过滤\t35 3.6 给Session下断点\t36 3.6.1 下断点拦截HTTP请求\t36 3.6.2 下断点拦截HTTP响应\t37 3.6.3 及时取消断点\t37 3.7 本章小结\t37 第4章 FiddlerScript的不错用法\t38 4.1 FiddlerScript的界面\t38 4.2 Fiddler的事件函数\t38 4.3 在FiddlerScript中使用正则表达式\t39 4.4 忽略抓包\t39 4.5 显示客户端和服务器的IP\t40 4.6 显示响应时间\t41 4.7 读写本地txt文件\t42 4.8 保存请求\t42 4.9 重新发送请求\t43 4.10 本章小结\t43 第5章 常见的抓包工具\t44 5.1 常见的抓包工具\t44 5.2 浏览器开发者工具\t44 5.2.1 调出开发者工具\t44 5.2.2 用Chrome测试网页加载时间\t45 5.2.3 用Chrome捕获网站登录的POST请求\t45 5.2.4 用Chrome测试接口的响应时间\t46 5.2.5 过滤请求\t47 5.3 vConsole\t47 5.4 Charles抓包工具\t48 5.4.1 Charles工具的安装与使用方法\t48 5.4.2 在Charles中安装根证书\t48 5.4.3 Charles配置规则\t50 5.4.4 用Charles捕捉网站登录的请求\t50 5.5 Wireshark抓包工具\t51 5.5.1 用Wireshark捕捉HTTP\t51 5.5.2 用Wireshark捕捉HTTPS\t53 5.6 本章小结\t55 第6章 用Python发送HTTP请求\t56 6.1 requests框架介绍\t56 6.1.1 在pip中安装requests框架\t56 6.1.2 在PyCharm中安装requests框架\t56 6.2 发送GET请求\t57 6.2.1 用Fiddler捕获Python发出的HTTP请求\t58 6.2.2 发送HTTPS请求\t59 6.2.3 发送带参数的GET请求\t59 6.2.4 发送带信息头的请求\t60 6.3 发送POST请求\t61 6.3.1 发送普通POST请求\t61 6.3.2 发送JSON的POST请求\t61 6.4 会话维持\t62 6.5 用Python发送各种请求\t62 6.6 用Python下载文件\t63 6.6.1 用Python下载图片\t63 6.6.2 用Python下载视频\t63 6.7 本章小结\t63 第7章 用正则表达式提取数据\t64 7.1 正则表达式测试工具\t64 7.2 利用正则表达式提取数据\t64 7.3 提取订单号\t64 7.4 提取token字符串\t66 7.5 从JSON字符串中提取\t67 7.6 提取Cookie字符串\t67 7.7 爬虫提取数据\t68 7.8 本章小结\t68 第8章 HTTP的9种请求方法\t69 8.1 HTTP常见的9种请求方法\t69 8.2 HTTP幂等性\t69 8.3 9种请求方法的特性\t70 8.4 HTTP和数据的增删改查操作的对应关系\t70 8.5 PUT方法\t70 8.5.1 POST方法和PUT方法的区别\t71 8.5.2 PUT方法和POST方法的选择\t71 8.6 DELETE方法\t71 8.7 HEAD方法\t72 8.8 OPTIONS方法\t73 8.9 CONNECT方法\t73 8.10 PATCH方法\t74 8.11 TRACE方法\t74 8.12 本章小结\t75 第9章 内容类型\t76 9.1 Content-Type介绍\t76 9.1.1 Content-Type的格式\t76 9.1.2 常见的Content-Type\t77 9.2 POST提交数据的方式\t77 9.3 3种常见的POST提交数据的方式\t78 9.3.1 application/x-www-form- urlencoded\t78 9.3.2 application/json\t79 9.3.3 text/xml\t79 9.4 HTTP中的负荷\t79 9.4.1 请求负荷\t80 9.4.2 响应负荷\t81 9.5 错误的POST提交方法\t81 9.6 根据接口文档调用接口实例\t81 9.7 键值对和JSON的混合\t82 9.8 本章小结\t83 第 10章 HTTP上传和下载\t84 10.1 HTTP上传文件的两种方式\t84 10.2 multipart/form-data\t84 10.2.1 对禅道上传图片的操作进行抓包\t85 10.2.2 使用JMeter模拟上传图片\t87 10.2.3 使用Python上传图片\t88 10.3 application/octet-stream\t88 10.3.1 在博客园的文章中上传图片\t88 10.3.2 用JMeter模拟博客园上传图片\t90 10.3.3 用Python模拟博客园上传图片\t91 10.4 用HTTP下载文件\t92 10.4.1 用JMeter下载文件\t92 10.4.2 用Python实现下载文件\t93 10.5 HTTP断点续传\t94 10.5.1 HTTP请求信息头\t94 10.5.2 HTTP分段实例\t94 10.6 本章小结\t95 第 11章 HTTP对各种类型程序的抓包\t96 11.1 用Fiddler抓取视频\t96 11.2 用Fiddler抓音频文件\t97 11.3 用Fiddler抓Flash\t97 11.4 用Fiddler抓公众号\t98 11.5 用Fiddler抓包小程序\t99 11.6 用AJAX抓包\t99 11.7 用Fiddler抓包C#\t100 11.8 用Fiddler抓包Java\t100 11.9 用Fiddler抓包Postman\t101 11.10 用Fiddler捕获macOS\t101 11.11 用Fiddler捕获Linux系统\t103 11.12 用Fiddler抓包坚果云\t103 11.13 本章小结\t104 第 12章 自动登录和登录安全\t105 12.1 登录的较量\t105 12.2 登录的风险\t105 12.2.1 冒用他人账户登录\t106 12.2.2 账户和密码在传输过程中被截获\t106 12.2.3 密码被破解\t106 12.2.4 系统被爬虫软件或者脚本自动登录\t106 12.3 登录的风控\t106 12.4 登录用GET还是POST\t106 12.4.1 GET方法的缺点\t107 12.4.2 POST比GET安全\t107 12.4.3 使用GET方法登录的网站\t108 12.5 安全的原则\t108 12.6 使用POST方法登录的网站\t109 12.7 登录响应携带隐藏的token字符串\t110 12.8 用JavaScript中的MD5给密码加密\t112 12.9 用JavaScript动态加密密码\t114 12.9.1 绕开JS混淆密码\t115 12.9.2 JS混淆密码总结\t116 12.10 短信验证码登录\t116 12.11 二维码扫码登录\t117 12.12 拼图登录\t117 12.13 普通图片验证登录\t117 12.14 独特的验证方式\t118 12.15 本章小结\t119 第 13章 图片验证码识别\t120 13.1 图片验证码\t120 13.1.1 图片验证码原理\t121 13.1.2 图片识别介绍\t121 13.1.3 Tesseract的安装与使用\t121 13.1.4 Tesseract的使用\t122 13.1.5 pytesseract的使用\t122 13.2 用Python实现图片验证码登录\t123 13.3 本章小结\t124 第 14章 综合实例——自动点赞\t125 14.1 给文章自动点赞\t125 14.1.1 拼图验证方式\t125 14.1.2 直接使用Cookie绕过登录\t126 14.1.3 分析点赞的HTTP请求\t126 14.2 用JMeter实现博客园文章自动点赞\t129 14.3 使用Python实现博客园文章自动点赞\t130 14.4 本章小结\t131 第 15章 前端和后端\t132 15.1 Web架构图\t132 15.2 前端开发和后端开发的区别\t133 15.2.1 展示方式不同\t133 15.2.2 运行不同\t133 15.2.3 全栈工程师\t133 15.2.4 前端和后端分离\t134 15.3 前端验证和后端验证\t134 15.3.1 前端验证\t134 15.3.2 后端验证\t135 15.3.3 前端验证和后端验证都需要\t136 15.4 后端验证的Bug\t136 15.5 Fiddler绕过前端实现投票\t137 15.6 后台和后台管理的区别\t138 15.7 本章小结\t139 第 16章 接口和接口测试\t140 16.1 接口的概念\t140 16.1.1 后端接口\t140 16.1.2 在线英语App示例\t141 16.1.3 “我的订单”的前端和接口\t141 16.2 登录接口示例\t142 16.3 接口文档的维护\t143 16.3.1 用Word文档维护\t143 16.3.2 用Wiki页面维护\t143 16.3.3 Swagger\t143 16.3.4 调用接口的方式\t145 16.4 接口测试的工具\t145 16.5 接口测试的本质\t146 16.6 接口测试的目的\t147 16.6.1 接口测试的优势\t147 16.6.2 接口测试是必需的吗\t147 16.6.3 接口测试需要的知识\t148 16.6.4 接口测试的流程\t148 16.6.5 接口测试的测试内容\t148 16.6.6 后端接口和前端测试是否重复\t149 16.7 登录接口的测试用例\t149 16.8 接口测试是自动化测试吗\t149 16.9 如何设计接口测试用例\t150 16.10 接口内部状态码\t151 16.11 本章小结\t152 第 17章 JSON数据格式\t153 17.1 JSON格式在接口中的应用\t153 17.2 JSON的概念\t153 17.3 JSON的应用场合\t153 17.4 JSON的语法\t154 17.5 JSON值的类型\t154 17.6 JSON应该使用双引号\t154 17.7 JSON数组\t155 17.8 JSON的嵌套\t155 17.9 JSON格式错误\t156 17.10 JSON解析工具\t156 17.10.1 在线的解析工具\t156 17.10.2 Notepad++格式化JSON\t156 17.10.3 在JMeter中格式化JSON\t157 17.10.4 在Fiddler中格式化JSON\t157 17.11 拼接JSON字符串\t158 17.12 JMeter中的JSON提取器\t159 17.13 本章小结\t160 第 18章 HTTP和RESTful服务\t161 18.1 什么是RESTful\t161 18.2 RESTful的优点\t162 18.3 RESTful的主要原则\t162 18.3.1 以资源为核心\t162 18.3.2 每个资源分配唯一的URL\t163 18.3.3 通过标准的HTTP(HTTPS)方法操作资源\t163 18.3.4 过滤信息\t164 18.3.5 资源的表现层可以是XML、JSON或者其他\t164 18.3.6 认证机制\t165 18.3.7 错误处理\t165 18.4 本章小结\t165 第 19章 用Postman测试分页接口\t166 19.1 接口介绍\t166 19.2 设计测试用例\t167 19.3 用Postman实现接口自动化\t167 19.3.1 Postman介绍\t167 19.3.2 Postman的使用\t167 19.4 接口测试的发展方向\t170 19.5 本章小结\t170 第 20章 用JMeter测试单个接口\t171 20.1 JMeter介绍\t171 20.2 添加客房接口介绍\t171 20.3 设计接口的测试用例\t172 20.4 JMeter的操作过程\t172 20.5 数据驱动测试\t175 20.6 本章小结\t177 第 21章 接口的token认证\t178 21.1 接口的认证\t178 21.2 token认证\t178 21.2.1 调用天气预报接口\t180 21.2.2 token和Cookie的区别\t181 21.3 token和Cookie一起用\t182 21.4 在JMeter中如何处理token字符串\t182 21.5 接口的三大安全性问题\t185 21.6 请求参数被篡改\t186 21.7 重放攻击\t186 21.7.1 在Fiddler中进行重放攻击\t187 21.7.2 UNIX时间戳\t187 21.7.3 接口带时间戳和签名\t188 21.8 本章小结\t188 第 22章 发包常见的错误\t189 22.1 发包的本质\t189 22.2 对比HTTP请求\t189 22.3 用JMeter发包常见的错误\t190 22.3.1 输入的网址错误\t190 22.3.2 端口号填错\t191 22.3.3 协议错误\t191 22.3.4 变量取值错误\t191 22.3.5 服务器返回404错误\t192 22.3.6 服务器返回400错误\t192 22.3.7 服务器返回500错误\t192 22.4 Postman发包常见问题\t193 22.5 JMeter和Postman的区别\t193 22.6 接口测试寻求帮助\t194 22.7 本章小结\t195 第 23章 秒杀活动的压力测试\t196 23.1 秒杀活动的压力测试方案\t196 23.1.1 秒杀的原理\t196 23.1.2 测试目标\t197 23.1.3 业务分析\t197 23.1.4 测试指标\t197 23.2 使用Fiddler来测试秒杀活动\t198 23.2.1 用Fiddler重新发送HTTP请求\t198 23.2.2 用Fiddler测试秒杀活动的思路\t198 23.2.3 用Fiddler测试优惠券\t199 23.2.4 单线程还是多线程\t201 23.2.5 分辨脚本和用户\t201 23.3 捕获App上的优惠券活动\t201 23.4 使用JMeter来测试秒杀活动\t202 23.5 压力测试报告\t203 23.6 本章小结\t204 第 24章 用Fiddler和JMeter进行 性能测试\t205 24.1 性能测试概述\t205 24.2 Web页面加载时间测试\t206 24.2.1 258原则\t206 24.2.2 实例:博客园页面加载时间测试\t206 24.3 接口的响应时间测试\t208 24.4 视频播放的性能测试\t210 24.5 模拟5个用户同时登录网站\t210 24.6 模拟5个不同的用户同时登录网站\t212 24.7 本章小结\t213 第 25章 HTTP中的支付安全测试\t214 25.1 修改支付价格\t214 25.2 漏洞发生的原因\t215 25.3 支付漏洞的解决方法\t216 25.3.1 前端不传递金额\t216 25.3.2 签名防止数据被篡改\t217 25.4 修改充值金额测试\t217 25.5 多线程提现测试\t218 25.6 转账金额修改测试\t219 25.7 重复支付\t220 25.8 本章小结\t221 第 26章 Web安全渗透测试\t222 26.1 敏感信息泄露测试\t222 26.2 重置密码测试\t222 26.3 修改任意账号的邮箱密码\t225 26.4 Cookie是否是HttpOnly属性\t225 26.5 越权访问漏洞\t226 26.6 资源必须登录才能访问\t227 26.7 修改VIP会员到期时间\t228 26.8 本章小结\t229 第 27章 综合实例——自动提交订单\t230 27.1 背景\t230 27.2 回归测试\t230 27.3 让回归测试自动化\t231 27.4 产品的架构\t231 27.5 自动化测试方案\t231 27.6 哪些测试用例可以自动化\t232 27.7 下单的测试用例\t233 27.8 用JMeter实现自动提交订单\t233 27.9 用Python实现自动提交订单\t236 27.10 用JMeter实现自动取消订单\t237 27.11 用Python实现自动取消订单\t239 27.12 模拟100个用户同时下1000个订单\t240 27.13 本章小结\t241 第 28章 综合实例——自动申请账号\t242 28.1 一键申请账号\t242 28.2 用JMeter实现自动创建用户\t245 28.3 本章小结\t248 第 29章 综合实例——自动签到领积分\t249 29.1 自动签到的思路\t249 29.2 手机抓包\t249 29.3 某电商签到领豆子\t249 29.4 某金融App签到\t251 29.5 自动运行脚本\t252 29.5.1 Python脚本利用Windows计划定时执行\t252 29.5.2 在Jenkins中定时执行\t253 29.6 本章小结\t253 第30章 综合实例——App约课助手\t254 30.1 App约课助手的思路\t254 30.2 自动化方案\t254 30.3 模拟App端还是Web端\t254 30.4 网课约课助手开发\t255 30.4.1 第 1步:模拟登录\t255 30.4.2 第 2步:获取课程ID\t258 30.4.3 第3步:约课\t259 30.5 本章小结\t260 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。