二、基础:常用测试工具(postman,fiddler、git等) 

常用工具【第一篇】postman常用功能(基础必备)

下载安装

下载地址:https://www.getpostman.com/downloads/

安装:略

接口测试详解

包含get,post(k-v,json,上传文件,cookie)

参考:https://www.cnblogs.com/uncleyong/p/11268846.html

 

设置环境变量(参数化 & 关联)

参考:https://www.cnblogs.com/uncleyong/p/7883213.html

 

断言

 断言HTTP响应状态码为200

断言响应内容中包含某值

解析并断言响应内容

断言响应时间是否小于200ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 断言HTTP响应状态码为200
tests["Status code is 200"= responseCode.code === 200;
 
// 断言响应内容中是否包含"code":9420
tests["Body matches string"= responseBody.has('"code":9420');
 
//解析响应内容并判断code的值是:9420,msg的值是:恭喜qzcsbj,登录成功
var jsonData = JSON.parse(responseBody);
tests["response statusCode"= jsonData.code === 9420;
tests["response message"= jsonData.msg === '恭喜qzcsbj,登录成功';
 
 
// 断言响应时间是否小于200ms
tests["Response time is less than 200ms"= responseTime < 200;

接口集:Collections

接口管理

新建请求后,点击Save

输入请求name,选择集合名称

保存后

随着接口越来越多,可以进一步分类

比如也业务分类,创建一个file文件夹,用来存放上传、下载文件的接口

把对应的接口拖到文件夹中即可

接口运行

可以运行整个collection里的接口,或者运行collection里某个Folder里的接口

上面选择file文件夹

Environment,即运行环境,是开发环境还是测试环境,需事先配置,

参考:https://www.cnblogs.com/uncleyong/p/7883213.html

Iterations,即重复运行次数。会将选择好的collection中folder重复运行。

Delay,间隔时间。用例与用例间的间隔时间。

Data,外部数据加载,即用例的参数化,可以与Iterations结合起来用,实现参数化,也就是数据驱动。

Run Demo,点击运行,运行完成后,即可得出一个简易的聚合报告。


常用工具【第二篇】接口测试1:postman

测试接口,postman和jmeter是用得最频繁的工具。

下面主要介绍postman测试http协议接口的用法,包含get,post(form-data,json,上传文件,cookie)。

 

postman--get请求

参数拼接在url后面

下面分别表示http响应状态码、请求耗时,响应大小,而上面的code=9630是程序内部定义的状态码

右上角code

 

postman--post请求:form-data

cookies,response.set_cookie(username,token)

headers

右上角cookies

可以删除cookie

右上角code

请求体里不同的input之间用一段叫boundary的字符串分割,每个input都有了自己一个小header,其后空行接着是数据

 

post请求--postman:x-www-form-urlencoded

自动添加上了请求头 

cookies

headers 

 右上角code

将input的name、value用‘=’连接,不同的input之间用‘&’连接

 

postman:上传文件

右上角code

 

postman:发json

自动加入了请求头信息

 右上角code

 

postman:cookie中传token

token是登录返回的,add_user3这个功能必须先要登录

特别说明:实际测试过程中,如果token失效时间很长,可以像下面获取到token后写死;但是,最好是通过关联,动态获取

postman动态获取参考:https://www.cnblogs.com/uncleyong/p/10991383.html

此篇重点不是关联,所以token写死

请求头信息

 请求

右上角code

  

可以看到,token在cookie中

 

postman:form-data,body中传token

右上角code

  

请求内容

 

postman:json,body中传token

自动加上了请求头信息

右上角code

至此,postman测试http协议接口的主要使用方法介绍完了。

postman更多功能,参考:https://www.cnblogs.com/UncleYong/p/10991383.html

接口测试:jmeter,参考:https://www.cnblogs.com/uncleyong/p/11668665.html

另外,

postman中 form-data、x-www-form-urlencoded、raw、binary的区别:https://blog.csdn.net/xybelieve1990/article/details/81111786

post使用form-data和x-www-form-urlencoded的本质区别:https://blog.csdn.net/u013827143/article/details/86222486


常用工具【第二篇】接口测试2:jmeter,(已迁移至公众号『全栈测试笔记』)

  


 常用工具【第三篇】jmeter更多功能

摘要:最简单的方法,就是找开发给报文,直接复制到tcp取样器中,将需要变化的值做参数化就可以了。(xml报文要去掉回车换行) 下面是一个通讯头定义 通讯头56个字节(1个字符一个字节) 3 + 9 + 9 + 10 + 5 + 8 + 12 = 56 TCPClient classname:缺省的org. 阅读全文
posted @ 2019-04-19 23:44 全栈测试笔记 阅读 (307) | 评论 (0) 编辑
 
  

常用工具【第四篇】fiddler安装及使用

原理

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(cookie,html,js,css等)。

 

fiddler下载、安装

下载

地址:www.telerik.com/fiddler

安装

启动

启动后的界面,包含:工具栏、请求列表、命令行、请求详情、响应详情

 

fiddler基础配置

默认监听端口为8888

勾选Allow remote computers to connect,表示允许远程连接(别的机器把HTTP/HTTPS请求发送到Fiddler上来)

fiddler默认只抓取http协议的请求,要抓取https协议的请求,需要做如下配置:

选中"Decrpt HTTPS traffic",fiddler就可以抓取https请求

首次勾选,会弹出两个对话框,是否信任fiddler证书和安全提示

否信任fiddler证书,点击【Yes】

安全提示,点击【是】

配置完成后,重启fiddler

fidller抓包默认用IE,IE不用做配置

打开fiddler,再打开IE的设置,可以看到,安装完fiddler后,默认也将IE的代理设置好了

关闭fiddler,代理自动被关闭

 

常用功能

清除左侧请求列表

过滤

方式一:

方式二:

隐藏或者显示配置的hosts

多个hosts之间用分号分割

显示内网、外网,这个用得少

 

web端抓包(http&https)

web端抓取http

设置过滤,只显示url中包含localhost的请求

启动本地tomcat服务,浏览器访问:http://localhost:8580/

双击下面这个请求

右侧上方显示请求详情,下方显示响应详情

web端抓取https

设置过滤

浏览器访问:https://www.baidu.com/

部分图标含义

清除图片

双击上面第一个请求

 

app端抓包(http&https)

以ios举例

完成fiddler的基础配置(见本篇第二节)

app端抓取http

手机和电脑在同一局域网

查看电脑ip

手机设置代理

设置过滤

手机访问电脑上的tomcat,电脑ip:8580,即:192.168.0.102:8580

app端抓取https

打开浏览器,输入电脑ip:8888,即:192.168.0.102:8888

点击上面的FiddlerRoot certificate超链接,下载证书

手机上安装证书

设置--通用--关于本机--证书信任设置,开启fiddler证书的信任

手机访问百度

 

模拟弱网低速

模拟低速网络情况下页面、APP的显示与交互情况,比如响应时间过长时是否有弹出网络不好的提示、页面crash以及显示错乱、session是否一致等

搜索:m_SimulateModem

默认,发送每KB延时300ms,接收每KB延时150ms

可以都设置为30000毫秒

变成黄色

ctrl+s保存后,变为绿色

开启限速

一直转圈

下面图标表示正在从服务器下载响应

测试结束后取消限速

 

请求数据篡改

Fiddler中设置断点修改Request

设置断点可以修改httpRequest的任何信息(包括host、cookie、表单中的数据)。

设置断点有两种方法:

  第一种:打开Fiddler,点击Rules -> Automatic Breakpoint -> Before Requests(这种方法会中断所有的会话),取消方式:点击Rules -> Automatic Breakpoint -> Disabled

  第二种: 在命令行中输入命令: bpu www.baidu.com (这种方法只会中断www.baidu.com),取消方式:在命令行中输入命令 bpu

举例:

浏览器访问jenkins:http://ip:8580/jenkins/login

打开Fiddler,点击Rules -> Automatic Breakpoint -> Before Requests

输入账号密码(密码是错误的密码),点击登录

fiddler能中断这次会话,双击被中断的会话

点击Inspectors tab下的WebForms

修改密码为test1234,然后点击Run to Completion

然后就能登录成功

Fiddler中设置断点修改Response

  第一种:打开Fiddler,点击Rules -> Automatic Breakpoint -> After Response (这种方法会中断所有的会话),取消:点击Rules-> Automatic Breakpoint -> Disabled

  第二种: 在命令行中输入命令: bpuafter www.baidu.com (这种方法只会中断www.baidu.com),取消:在命令行中输入命令 bpuafter。 

先设置fiddler,打开fiddler,点击Rules -> Automatic Breakpoint -> After Response

浏览器访问:http://ip:8580/jenkins/login

修改响应内容,添加如下内容

页面返回

但是这样容易造成请求超时,可以用AutoResponder。

 

AutoResponder替换源资源

目的:请求百度首页,返回https://www.cnblogs.com/UncleYong/

将左侧的请求拖动到右侧

此时,浏览器访问百度首页,会重定向到:

不使用该规则,取消勾选

或者移除

mock

fiddler_mock.txt

{"code":"0", "message":"success", "content":{"user":"uncleyong","url":"https://www.cnblogs.com/UncleYong/"}}

访问百度首页

另外,还可以用正则匹配

前缀为“EXACT:”表示完全匹配(大小写敏感)

无前缀表示基本搜索,表示搜索到字符串就匹配

前缀为“NOT:”表示发现就不匹配

前缀为“REGEX:”表示使用正则表达式匹配 

 

fiddler模拟http请求

无参

get有参

post

另外,可以将左侧请求行中需要的请求拖拽至请求构造栏中,修改相应参数,执行调试接口

  


常用工具【第五篇】git常用命令(测试必备)

 

什么是git

百度百科:Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。

git相对svn,有很多优势,这里就不再赘述,大家网上搜索吧。

git的操作流程是:比如我们在本地对项目做更新操作,到最后推送到远程仓库,需要经历这几个步骤:

  0.在工作区更新项目

  1.添加到暂存区(add)

  2.提交到本地仓库(commit)

  3.推送到远程仓库(push)

 

git安装

详见:https://www.cnblogs.com/UncleYong/p/10767747.html

 

git基础命令

虽然有git客户端,但是建议还是用命令进行操作,因为命令会了,一个简单的图形界面客户端是很easy的,信不信由你。

git --version,查看版本

git init,初始化本地仓库(创建一个文件夹,进入这个文件夹,执行git init)

新增文件

git status,查看状态

git add,将文件添加到暂存区

git commit,文件提交到本地仓库

提示:

git在commit前,需要初始化配置:设置仓库人员的用户名和邮箱地址,这一步必不可少(参考:https://www.cnblogs.com/UncleYong/p/6892171.html

  git config --global user.name "uncleyong"

  git config --global user.email "168632201@qq.com"

再次执行commit操作

git push,推送到远程仓库

因为我们还没有关联远程仓库,所以暂时不执行

先在远程仓库上创建一个项目(如果没有账号,可以注册一个,https://gitee.com

输入仓库名称,然后保存即可

复制远程仓库地址:https://gitee.com/UncleYong/git_test.git

git remote add添加远程仓库,origin可以理解为一个别名

推送到远程仓库

master表示推送到master分支(主干分支),-f参数,就是表示强制,由于我们创建的是空项目,所以哪怕里面有内容,也会被覆盖掉(所以,这个参数要慎用

输入账号

输入密码(也可以配置ssh通信方式,这样可以不用每次都输入密码:https://www.cnblogs.com/UncleYong/p/6891958.html

推送成功

访问:https://gitee.com/UncleYong/git_test

可以看到,刚刚新增的test.txt文件已经被推送到远程仓库

但是,通常,项目不是我们创建的,那么:

  如果我们本地没有这个项目,我们就要先把项目拉到本地,git clone,做了更新后,再走上面的流程

  如果我们本地已经有这个项目,但是可能不是最新了,比如你的同事往远处仓库提交了代码,此时,你本地的也做了修改,但是还没提交,但是你要把远程的拉下来,

    操作方式一:git pull,会把你做的修改覆盖掉,所以不推荐,除非你不想保留你的修改

    操作方式二:先git fetch,然后git merge将远程的变更合并到本地仓库(下面的分支合并详细讲解)。

 

git提交更改

克隆空项目,从头开始

test2.txt提交到暂存区

git reset HEAD 文件名,移除提交到暂存区的文件

git reset HEAD^ 或者 commitid,取消上一次的提交

把之前的提交了

两次提交记录

 变成一次提交记录了

把上次的提交了

git reset --soft  HEAD^:回到上次提交前的状态,也就是暂存区的状态

第二次提交没了,但是文件在暂存区

下面结果说明,执行git reset --soft后,工作区和暂存区的内容不会改变

修改提交信息,再次提交记录

另外,还有下面两个,大家自己实践吧。

git reset --mixed (默认选项)将HEAD指向指定的提交,暂存区的内容随之改变,工作区内容不变

git reset --hard 将HEAD指向指定的提交,暂存区跟工作区都会改变

把之前的提交了

git reset --hard HEAD^

 

git分支

每个项目,一般有多个分支,比如master(主干分支)、开发分支、测试分支、生产bug分支等等,一个分支不受其它分支的影响,

但是,分支越多,后期合并分支的成本越大,所以,不要随便创建不必要的分支。

创建分支:git branch 分支名,分支名不要包含特殊符号,比如*,/,等等,要见其知意,另外,还可以创建并切换分支:git checkout -b 分支名

查看所有分支:git branch,分支前面有*号的表示该分支为当前所在分支

修改分支名:git branch -m 旧分支名 新分支名

切换分支:git checkout 分支名

删除分支:git branch -d 分支名,但是不能删除当前所在的分支

切换到master再删除

 

git log

用于查看提交历史(commit的记录),显示的顺序是由近到远

显示的log的含义:

commit id,每个id都是唯一的

Author,初始化时候的配置信息,作者及邮箱

Date,提交日期

xxx,commit -m的提交说明

查看最近n次的提交:git log -n,n是数字

查看指定作者的提交,如果没有,就显示空:git log --author xxx

概要显示:git log --oneline 

git log --graph,一条线串联整个提交历史

显示最近n次提交的不差异:git log -p -n,n是数字

git diff

克隆空项目,从头开始

比较工作区和暂存区的差异(如果暂存区没有,就和当前分支本地仓库比较):git diff

比较暂存区和工作区的差异:git diff --cached

比较工作区和当前分支本地仓库的差异:git diff HEAD,HEAD是指向当前分支的指针

新增文件

如果暂存区和当前分支本地仓库都没内容,执行git diff,结果就为空

提交到本地仓库

下面执行的git diff结果为空,因为工作区为空

修改文件

上面修改后,不add

结果说明:如果暂存区没有内容,但是当前分支本地仓库有内容,执行git diff,是工作区和本地仓库对比,

add后,git diff没有结果,因为工作区为空

下图表示暂存和当前分支本地仓库对比

再次修改

上面修改后,不add

下面执行结果说明:  

  如果暂存区有内容,不管当前分支本地仓库是否有内容,执行git diff,是工作区和暂存区对比,

  如果暂存区没有内容,但是当前分支本地仓库有内容,执行git diff,是工作区和本地仓库对比,  

 工作区和当前分支本地仓库对比

把上面的都提交了

查看当前分支跟指定的分支的差异:git diff 分支名

创建并切换到test分支

然后修改文件

和master分支比较

查看两个指定分支(已提交的)的差异(后者和前者的差异):git diff 分支名1 分支名2

提交前,没有输出结果

提交后,有输出结果

查看指定文件的差异(比较工作区和暂存区):git diff 文件名

修改

列出两个历史提交的差异(后者与前者相比):git diff commitid1 commitid2

git diff --stat,列出有变更的文件,不显示变更的具体内容

也可以比较两个分支(后者与前者相比)

补充,git diff结果的含义

diff --git a/text.txt b/text.txt,表示文件text.txt的两个版本
--- a/text.txt,---表示更改前的文件
+++ b/text.txt,+++表示更改后的文件
@@ -2,3 +2,4 @@ hello test,文件差异的区域,-2,3表示变更前从第2行开始,到第3行,+2,4表示变更后从第2行开始,到第四行
第一次修改
第二次修改
test分支:第一次修改
+test分支:第二次修改,+表示新增了一行,-表示删除了一行,如果对一行内容进行修改,在此处体现出来的就是先删除一行,再新增一行

 

分支合并&冲突解决

git merge 分支名,表示用指定分支和当前分支进行合并

克隆空项目,从头开始

再创建一个文件并提交

创建并切换到分支test

修改文件

提交

切换到master分支,test2.txt内容没有变

合并分支,然后可以看到test分支修改的内容

切换到test分支

修改文件

提交

切到master分支

修改同一个文件

提交

合并test,产生冲突

文件内容

最终改为test分支上的

提交

查看冲突的文件:git diff --name-only --diff-filter=U

回退并查看冲突文件

  


常用工具【第六篇】docker安装及使用


==============================================

邮箱:zhanghanhaichuan@163.com

> > > 声明:部分转载、整理自网络,如有侵权,请联系删除。

==============================================

==============================================

02-13 17:15