├── 00-测试工具篇 ├── 00-测试工具汇总.md ├── 01-思维导图工具.md ├── 02-抓包工具.md └── 03-微信生态工具-微信开发者工具.md └── README.md /00-测试工具篇/00-测试工具汇总.md: -------------------------------------------------------------------------------- 1 | 作为测试工程师,我们需要掌握很多工具,测试工具有很多,以下给大家整理下主要会用到的一些工具,今天只是列出来给大家概括讲一下,单个工具会用一篇文章详细讲解。 2 | 3 | ## 思维导图工具 4 | 5 | 思维导图工具,我用的多的是 xmind 和幕布两个工具。 6 | 7 | xmind 是一款 PC 端软件,需要下载安装,跨平台,支持 Windows、Mac、Linux。作为测试,xmind 工具主要用于写测试用例的时候,发散自己的思维,尽量全部覆盖需求,层层递进,不遗漏每个需求点。用 xmind 工具测试案例评审的时候,产品经理和开发人员相对比于 Excel 工具更看得清晰些。xmind 工具还可用于做技术分享或者总结文档,因为它支持在分支主题后面贴上图片。 8 | 9 | 幕布是一款在线的思维导图工具,可以实现手机 APP 端和网页端同步,我一般用来记录个人事务,比如我的读书计划列表。 10 | 11 | ![幕布做计划](https://github.com/Brucepk/pk.github.io/blob/master/%E5%B9%95%E5%B8%83.png) 12 | 13 | 幕布还支持链接分享和协作编辑,协作这个功能我没用过,大家可以试一试。幕布有个缺点,就是不是会员的话不能粘贴图片,获取会员有两种方式,一种是打钱,一种是分享给好友,好友注册了你就有 30 天左右的会员,同时好友也获得 15 天的会员。不过我经常看到好友分享幕布免费领会员的活动,什么 xxx 赠送 100 天幕布会员,我都累计领了 2 年会员了,不担心图片的问题。大家需要的话可以通过我的链接进去注册,互利下,哈哈。[我的幕布分享链接](https://mubu.com/inv/1628860) 14 | 15 | 幕布还有个我比较喜欢的工具,文档转换为导图,文档符合它的缩进格式就可以意见转化为思维导图,很方便。格式的话掌握 Enter、Tab和Shift+Tab 三个快捷键基本够用。导图支持导出保存为高清图片格式,相对于 xmind,幕布显得更加轻便。 16 | 17 | 18 | 19 | ## charles 或者 fiddler 抓包工具 20 | 21 | 我们知道,Web 端的测试的话,我们可以直接通过浏览器自带的检查调试功能查看请求和返回的详细信息和日志,快键键 F12 可以调出此调试功能。 22 | 23 | 现在全民移动时代,APP 测试怎么抓取请求和返回信息来辅助我们测试呢?我们需要一个协议调试代理工具,应用此工具截获请求和返回信息。常见的工具有 charles 和 fiddler,这两款工具功能类似,fiddler 功能相对更多一些,charles 页面比较简洁一些。16 年之前 fiddler 不支持 Mac OS 系统,2016 年 10 月才开放 Mac 版本。所以,这两款工具看大家的选择,基本功能如抓包、断点、模拟低网速都是类似的。 24 | 25 | ## 微信开发者工具 26 | 27 | 2019 年 5 月 18 日,微信又达成一里程碑!月活跃用户数正式破 11 亿。可以说中国除了不会用手机的小孩和老人,基本都用上了微信,微信生态里的服务也越来越丰富,常见的是公众号和小程序,更大的便利的我们的生活。所以,我们在公司测试公众号项目或者小程序项目就很常见了。公众号和小程序通过抓包也可以获取请求和返回信息,微信官方提供了一个更方便的工具,微信开发者工具,这个工具既可以用来开发调试公众号或小程序项目,也可以用来调试,公众号或小程序项目,非常方便。 28 | 29 | 微信官方提供了 3 个版本的[微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html):开发版、预发布版、稳定版,可以按需下载安装。 30 | 31 | ## 接口测试工具 postman 32 | 33 | 何为接口测试,接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。通常在功能测试只能进行接口测试的话,能发现大部分的缺陷,而且能发现功能测试不易发现的缺陷,比功能测试更灵活。 34 | 35 | Postman 是谷歌的一款接口测试插件,它使用简单,支持用例管理,支持 get、post、文件上传、响应验证、变量管理、环境参数管理等功能,可以批量运行,并支持用例导出、导入。 36 | 37 | 大家需要练习的话可以注册[聚合数据](https://note.youdao.com/),注册的话可以免费调用 500 次,属于 get 请求。 38 | 39 | ![postman查天气](https://github.com/Brucepk/pk.github.io/blob/master/postman%20%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7%E6%9F%A5%E5%A4%A9%E6%B0%94.png) 40 | 41 | ## 性能测试工具 Jmeter 42 | 43 | jmeter是一款100%纯Java编写的免费开源的工具,它主要用来做性能测试,相比loadrunner来说,它内存占用小,免费开源,轻巧方便、无需安装,越来越被大众所喜爱。 44 | 45 | 比如模拟 10000 人同时支付订单,这场场景在测试环境只能借助工具来实现了。 46 | 47 | ## 数据库工具 48 | 49 | 作为测试,对于数据库数据,我们也需要进行校验和测试,我们数据有没有落库,数据是否正常保存,通过查询或者修改数据库数据来完成测试的需要。 50 | 51 | 操作数据库常见的可视化工具有 Navicat 和 PL/SQL 工具,PL/SQL 过 30 天就会显示过期,网上有教程让我们再续 30 天:[如何解决PL/SQL Developer过期的情况](https://jingyan.baidu.com/article/ce43664911c5303773afd38b.html) 52 | 53 | 测试的话需要掌握基本的数据库查询和修改功能,多表查询常见用法等。 54 | 55 | ## xshell 连接服务器工具 56 | 57 | 前端问题的话,前面讲到用抓包工具来定位问题,如果涉及后端的话,我们需要查看服务器日志,怎么连接服务器呢?Windows 端,我们下载一个 xshell 工具,Xshell 是一个强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议。 58 | 59 | 通过 ip 和登录名和密码登录服务器,进入保存日志的路径,通过命令查询实时日志或者只查询某关键字的日志,更好的辅助定位问题。 60 | 61 | ## 掌握一门计算机语言 62 | 63 | 互联网的红利基本已消失,如果你还只是会功能测试,5 年后,你肯定会被淘汰,除非你往管理层发展,管理岗位本来也不多。所以,作为测试,必须要掌握一门计算机语言,掌握一门计算机语言,我们就可以做很多事情了,可以做自动化测试,开发测试工具,提高测试效率,甚至,你业余时间还可以用技术做点副业。 64 | 65 | 测试的话建议学习的计算机语言是 Python,语言简洁,容易入门。 66 | 67 | ## 管理知识 68 | 不管你现在的岗位是什么,学点管理知识终究还是有用的,PMP 证书有时间和精力的话可以考一个。 69 | 70 | 你现在没有机会,也许有一天你的机会来了,领导让你担任小领导,你不知所措,就会丢失机会。即使现在不是管理,掌握相关知识,可以打开你的思路,把工作以管理思维导向,你会发现,你的工作事半功倍。 71 | 72 | 管理,管的是事,理的是人,切不可本末倒置。 73 | 74 | -------------------------------------------------------------------------------- /00-测试工具篇/01-思维导图工具.md: -------------------------------------------------------------------------------- 1 | 今天给大家讲讲思维导图的两款工具,Xmind 和幕布。 2 | 3 | ## Xmind 下载安装 4 | Xmind 的我用的比较多的是电脑版的,Xmind8 官网下载地址:[Xmind](https://www.xmind.cn/xmind8-pro/) 5 | 6 | 它有 windows 版本和 Mac 版本,我们现在免费版就够用了。Xmind 相对在线编辑的幕布来说比较笨重一点。 7 | 8 | ## Xmind 主要用法 9 | 10 | 首先,根据自己的需求,可以选择一种图新建。 11 | 12 | ![新建Xmind文件](https://github.com/Brucepk/GitHub_Photos/blob/master/%E6%96%B0%E5%BB%BAXmind.png) 13 | 14 | 15 | 比如我新建一张鱼骨图,增加子主题后,它的整体形状就是模版里看到的鱼骨形状,非常方便。 16 | 17 | ![鱼骨图](https://github.com/Brucepk/GitHub_Photos/blob/master/鱼骨图.png) 18 | 19 | 新建时我们还可以选择 XMind 里面的很多模版,包含商业、教育、个人 26 个模版。 20 | 21 | ![模版](https://github.com/Brucepk/GitHub_Photos/blob/master/模版.png) 22 | 23 | 比如我选择公司组织结构模板图,我们根据自己需求做修改就行了,是不是很方便。 24 | 25 | ![公司组织结构图](https://github.com/Brucepk/GitHub_Photos/blob/master/公司组织结构图.png) 26 | 27 | 28 | #### 做标记 29 | 30 | 你可以根据自己需求给主题做标记。 31 | 32 | ![标记图](https://github.com/Brucepk/GitHub_Photos/blob/master/做标记.png) 33 | 34 | #### 粘贴图片 35 | 36 | 复制好图片,选择主题,粘贴,图片就会附在后面了。 37 | 38 | ![图片粘贴](https://github.com/Brucepk/GitHub_Photos/blob/master/图片粘贴.png) 39 | 40 | #### 主要操作 41 | 主要掌握快捷键:Tab 键、回车键,就可以新建子主题和同级主题了。 42 | 43 | 选中一个主题,按 Tab 键就会新建该主题下的子主题,按 Enter 键则会新建该主题的同级主题。当然你可以右键操作这些命令。 44 | 45 | ## 幕布在线导图 46 | 47 | 幕布是在线,直接在浏览器输入地址就可以访问,新用户的话通过[我的链接](https://mubu.com/inv/1628860)注册可以获得 30 天会员,每篇文档会员的主题没有限制,非会员每篇文档限制 200 条主题。 48 | 49 | #### 新建 50 | 51 | 我们可以新建文件夹和文档,把文档放在文件夹中归类。 52 | 53 | #### 导入 54 | 还有个强大的功能是可以导入 FreeMind 格式的文件。 55 | ![导入](https://github.com/Brucepk/GitHub_Photos/blob/master/导入.png) 56 | 57 | 之前的 xmind 文件转化成 FreeMind 格式就 ok 了。 58 | 59 | ![转化格式](https://github.com/Brucepk/GitHub_Photos/blob/master/转化格式.png) 60 | 61 | 导入后默认是文档的形式,通过缩进的形式来表示主题和子主题的关系。 62 | 63 | ![幕布文档](https://github.com/Brucepk/GitHub_Photos/blob/master/幕布文档.png) 64 | 65 | #### 转换思维导图 66 | 67 | 文档我们可以直接转换为思维导图,点击右上方的查看思维导图按钮可以一键转换。 68 | 69 | ![转换为导图](https://github.com/Brucepk/GitHub_Photos/blob/master/转换为导图.png) 70 | 71 | #### 改变背景和导图结构 72 | 点击导图右边按钮我们还可以改变导图的背景和结构。 73 | 74 | ![调整结构](https://github.com/Brucepk/GitHub_Photos/blob/master/调整结构.png) 75 | 76 | #### 保存图片 77 | 点击右边调整结构按钮下方保存图片,可以直接把导图的高清图片下载到本地(会员)。 78 | 79 | 点击退出按钮就会回到文档页面。 80 | 81 | ## 编写文档 82 | 和 Xmind 类似,主要用到 Tab 键、Enter 键、shift + Tab 键,分别表示向前缩进、建同级主题、向后缩进。 83 | 84 | 上面有些功能需要会员,比如下载高清图,主题数限制,会员费也不贵,但是经常有很多程序会送幕布的会员,我都领了 2 年了,另外,邀请好友也可以会员时间,邀请 9 个就可以获得一年的会员。 85 | 86 | ## 支持协作编辑 87 | 如果文档需要多个合作的,幕布是支持的,右上方点击链接,设置权限,分享出去就行。 88 | 89 | ![协作](https://github.com/Brucepk/GitHub_Photos/blob/master/协作.png) 90 | 91 | 92 | 93 | 思维导图工具的使用就介绍到这里。 -------------------------------------------------------------------------------- /00-测试工具篇/02-抓包工具.md: -------------------------------------------------------------------------------- 1 | 抓包工具第一篇文章我们讲过,主要有 Charles 和 Fiddler,关于 Fiddler 抓包 APP 的,我之前写过一篇文章:[Fiddler抓包APP教程](https://www.pyzhishiquan.com/fiddler-app.html),Fiddler 抓包 App 请直接参考这篇文章。 2 | 3 | 今天重点讲下 Charles 抓包 APP。 4 | 5 | 首先,Charles 抓包工具是付费的,不付费的话每隔 30 分钟 Charles 就会重启一次,很烦人,网上有很多破解的 jar 包,大家自行搜索,这里就不提供方法了。 6 | 7 | ## Charles 代理设置 8 | 9 | 首先我们得在 Proxy--Proxy Setting 中设置代理端口号,默认 8888,一般用默认的就行,除非和电脑上其他端口有冲突,下面的勾√ 也有勾上,这是为了能抓取 HPPTS 数据的。 10 | 11 | ![抓包设置](https://github.com/Brucepk/GitHub_Photos/blob/master/抓包设置.png) 12 | 13 | ## 安装证书到电脑 14 | 15 | Charles 证书安装在电脑里,点击 Help--SSL Proxying--Install Charles Root Certificate 16 | ![电脑安装证书](https://github.com/Brucepk/GitHub_Photos/blob/master/电脑安装证书.png) 17 | 18 | 点击安装后,在证书列表里找到它,设置始终信任它就行,我这是 Mac,windows 好像更简单,全部下一步就行。 19 | 20 | ![信任证书](https://github.com/Brucepk/GitHub_Photos/blob/master/信任证书.png) 21 | 22 | ## 安装证书到手机 23 | 首先,我们让手机和电脑子啊同一局域网下,先查看下电脑的 IP,Windows 电脑 cmd 里输入 ipconfig 命令查看 IP,Mac 电脑在终端输入 ifconfig 查看 IP,手机的无线网里设置代理,填上刚查到的 IP 和端口号 8888。 24 | 25 | ![手机设置代理](https://github.com/Brucepk/GitHub_Photos/blob/master/手机设置代理.png) 26 | 27 | 如果手机是第一次和电脑连接,Charles 上会有弹窗提示,选择 Allow 同意即可。 28 | 29 | ![弹窗提示](https://github.com/Brucepk/GitHub_Photos/blob/master/弹窗提示.png) 30 | 31 | 连上之后,我们点击 Help--SSL Proxying--Install Charles Root Certificate on a Mobile Devices or Remote Browser,这时会弹窗告诉我们怎么做。 32 | 33 | ![下载手机证书](https://github.com/Brucepk/GitHub_Photos/blob/master/下载手机证书.png) 34 | 35 | 弹窗的意思是让我们手机连上代理后,手机浏览器里输入 chls.pro/ssl 网址,下载安装证书。 36 | ![下载证书](https://github.com/Brucepk/GitHub_Photos/blob/master/下载证书.png) 37 | 38 | 下载后安装就可以了,我这是 Android 手机,苹果手机多一步信任证书的步骤,这点要注意。 39 | 40 | 41 | 证书都安装完成后,操作手机上的 APP,就会抓到大量的数据信息了。 42 | 43 | ![抓包信息](https://github.com/Brucepk/GitHub_Photos/blob/master/抓包信息.png) 44 | 45 | 46 | ## 过滤信息 47 | 48 | 信息太多,我们可以做下过滤,左下方 Filter,我们可以做下临时的过滤功能,比如我要抓取今日头条 APP 的 NBA 模块的内容,我们在 Filter 输入 snssdk,点击第一个域名下面,我们看到抓取到的新闻的标题信息。 49 | 50 | ![抓取NBA信息](https://github.com/Brucepk/GitHub_Photos/blob/master/抓取NBA信息.png) 51 | 52 | ## 不显示抓取数据 53 | 假如你抓取的全部数据出现 unknown 的情况。 54 | 55 | ![unknown](https://github.com/Brucepk/GitHub_Photos/blob/master/unknown.png) 56 | 57 | 这时请在 Proxy--SSL Proxy Settings 中添加,在 Host 里输入 *,表示容许抓取所有数据。 58 | 59 | ![加星号](https://github.com/Brucepk/GitHub_Photos/blob/master/加星号.png) 60 | 61 | 如果加上之后还是显示 unknown,可能证书没装好或者过期了,电脑上和手机上的证书根据上面的步骤重装下。 62 | 63 | ## 切换显示模式 64 | 65 | Charles 抓包的信息有两种显示方法,默认的是 Structure 信息流,你也可以切换成 Sequence 模式。 66 | 67 | ![Sequence模式](https://github.com/Brucepk/GitHub_Photos/blob/master/Sequence模式.png) 68 | 69 | 70 | ## 模拟网速 71 | Charles 可以模拟不同的网络情况,一般用在测试中,模拟不同的网络情况下软件是否运行正常。我们在 Proxy--Throttle Settings 中设置不同的网速。 72 | ![模拟网速](https://github.com/Brucepk/GitHub_Photos/blob/master/模拟网速.png) 73 | 74 | ## 断点 75 | 什么是断点呢?开发的时候,经常需要对代码进行 debug 断点调试,让程序中断在需要的地方,从而方便其分析。Charles 中的断点功能也是类似的。这个功能主要是在测试过程中,对于有些极端的数字我们无法模拟的情况下,我们会设置断点该数据。举个例子,测试贷款业务,显示贷款金额,比如最大金额是 100000000,测试中这个数据不好造,我们需要测试下最大金额时页面显示的兼容性,是否会被截断或者不显示,这时可以借助断点,改变金额后返回给页面,页面显示的就是你修改之后的数据了。 76 | 77 | 我们先对需要断点的域名设置断点。 78 | 79 | ![设置断点](https://github.com/Brucepk/GitHub_Photos/blob/master/设置断点.png) 80 | 81 | 注意是在主域名这里设置断点,不是在下面。 82 | 83 | 刷新页面或者重新进入页面时,会触发断点功能,左侧显示的是断点的域名。 84 | 85 | ![触发断点](https://github.com/Brucepk/GitHub_Photos/blob/master/触发断点.png) 86 | 87 | 不是我们要改的信息直接点击 Execute。 88 | 89 | 比如在个人信息里,我把我的粉丝数量改成 999999999,看看手机页面显示,粉丝数量确实变了(如果真有这么多就好了) 90 | 91 | ![9亿粉丝](https://github.com/Brucepk/GitHub_Photos/blob/master/9亿粉丝.png) 92 | 93 | 94 | 断点结束后,记得关闭断点,当电脑上的 Charles 抓包工具关闭时,记得将手机上的代理关闭,否则手机会上不了网。 95 | 96 | 以上就是 Charles 常用功能,如果遗漏,欢迎补充交流。 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /00-测试工具篇/03-微信生态工具-微信开发者工具.md: -------------------------------------------------------------------------------- 1 | ## 前言 2 | 3 | 2019 年 5 月 18 日,微信又达成一里程碑!月活跃用户数正式破 11 亿。可以说中国除了不会用手机的小孩和老人,基本都用上了微信,微信生态里的服务也越来越丰富,常见的是公众号和小程序,更大的便利的我们的生活。所以,我们在公司测试公众号项目或者小程序项目就很常见了。公众号和小程序通过抓包也可以获取请求和返回信息,微信官方提供了一个更方便的工具,微信开发者工具,这个工具既可以用来开发调试公众号或小程序项目,也可以用来调试,公众号或小程序项目,非常方便。 4 | 5 | ## 工具下载 6 | 微信官方提供了 3 个版本的微信开发者工具:(https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) 开发版、预发布版、稳定版,可以按需下载安装。 7 | 8 | ## 应用范围 9 | 微信开发者工具可以用来开发小程序、小游戏、公众号网页,功能强大,官方有详细的操作文档,这里我就不班门弄斧了,大家如需要开发微信生态的项目的话可以直接查看官方文档: 10 | [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html) 11 | 12 | ![应用范围](https://github.com/Brucepk/GitHub_Photos/blob/master/应用范围.png) 13 | 14 | 15 | ![官方文档](https://github.com/Brucepk/GitHub_Photos/blob/master/官方文档.png) 16 | 17 | ## 应用于测试 18 | 19 | 作为测试,微信开发者工具怎么为我们服务呢?我以测试公众号网页为例,来分享下它的主要用法。 20 | 21 | 我们点击公众号网页项目,第一次需要用微信扫面登录。 22 | 23 | 还有一点需要注意,你在调试公众号项目之前,必须在该公众号后台,将你刚才用来登录的微信添加在白名单内。在微信公众号后台的 开发--开发者工具--web开发者工具,在这里绑定开发者微信号,开发者同意,这样才能调试公众号里面的项目。 24 | 25 | ![开发者工具开启](https://github.com/Brucepk/GitHub_Photos/blob/master/开发者工具开启.png) 26 | 27 | ![绑定开发者微信号](https://github.com/Brucepk/GitHub_Photos/blob/master/绑定开发者微信号.png) 28 | 29 | 接下来愉快的开发测试调试工作吧,微信开发者工具让我们像网页自带的调试功能或者抓包一样调试公众号项目,哎呀,真香。 30 | 31 | 32 | 在手机上把公众号项目的链接复制粘贴在上方的地址栏,就可以愉快的调试了。 33 | 34 | ![测试调试](https://github.com/Brucepk/GitHub_Photos/blob/master/测试调试.png) 35 | 36 | ## 断点调试 37 | 38 | 和网页一样,当然少不来哦断点调试功能。 39 | 40 | ![断点调试](https://github.com/Brucepk/GitHub_Photos/blob/master/断点调试.png) 41 | 42 | 其他功能大家慢慢在应用中摸索吧。 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 项目介绍 2 | - 项目地址:https://github.com/Brucepk/Testing 3 | 4 | 从零开始学测试,软件测试入门和进阶学习笔记,做一个测试工程师。持续更新... 5 | 6 | 之前也分享过自动化测试方面的知识,可以看这几篇文章: 7 | 8 | ### RobotFramework框架篇 9 | 10 | [RF框架入门篇](https://mp.weixin.qq.com/s/0sBS-eXAL02e1h4c0syADQ) 11 | 12 | [RF框架做 Web 端自动化测试](https://mp.weixin.qq.com/s/enIK0vx7-nmPjwx9sGcLlw) 13 | 14 | [RF框架做 APP 端自动化测试](https://mp.weixin.qq.com/s/G7nm13UQXnD32JofhujYEQ) 15 | 16 | [jenkins 集成环境搭建,定时执行测试脚本](https://mp.weixin.qq.com/s/t9T_CFNtwH_Y9rWH7u1nnA) 17 | 18 | [jenkins执行脚本后自动发邮件](https://mp.weixin.qq.com/s/sLoDBEkISYwItBmZZQElUw) 19 | 20 | [RF框架中的脚本封装、分层思想](https://mp.weixin.qq.com/s/x3B3gp-PUaON0CHShLJ1iA) 21 | 22 | 23 | ### unittest框架篇 24 | 25 | [unittest框架做自动化测试并发送报告](https://mp.weixin.qq.com/s/rEcWptLw7UTpKeOupO6jGA) 26 | 27 | [unittest框架之数据驱动](https://mp.weixin.qq.com/s/F3LU1FR0ghehFiM0ezlWVA) 28 | 29 | [unittest框架渠道包自动化验证](https://mp.weixin.qq.com/s/po9sCKhjg6y8UY__wb9xFA) 30 | 31 | ## 学习交流 32 | 33 | 34 | 你也可以关注微信公众号「Python知识圈」,学习测试之外,懂点 Python,你会走得更快更远。 35 | 36 | 37 | ![公众号](https://github.com/Brucepk/pk.github.io/blob/master/gzh.jpg) 38 | --------------------------------------------------------------------------------