【博学谷学习记录】超强总结,用心分享|测试工程师必备技能总结:功能测试与数据库、Fiddler

功能测试与数据库、Fiddler

1、功能测试与数据库

1.1 项目与数据库的关系



项目中的数据是存储在数据库中的

对数据库修改(增删改查)会影响项目页面显示

实操练习:

修改数据库中“小米手机5,十余项黑科技,很轻狠快”的商品名称,在前台页面看到变化


1、数据表 tp_goods

2、字段 goods_name

3、操作语句 update 表名 set 字段名 = 字段值 where 条件

修改前:

select * from tp_goods where goods_name = '小米手机5,十余项黑科技,很轻狠快' -- 精确查询

select * from tp_goods where goods_name like '小米手机5%' -- 模糊查询

修改:

update tp_goods set goods_name = '小米手机55' where goods_name = '小米手机5,十余项黑科技,很轻狠快'

修改后:

select * from tp_goods where goods_name = '小米手机5,十余项黑科技,很轻狠快' -- 精确查询

select * from tp_goods where goods_name like '小米手机5%'

1.2 数据库典型应用场景(重点)

验证数据的准确性与完整性

借助数据库进行缺陷定位

借助数据库构造测试场景(需要特定的测试数据)

借助数据库数据备份更新

1.2.1 验证数据的准确性与完整性

执行用例过程中,有时需要到数据库验证数据的准确性与完整性


1.2.2 借助数据库进行缺陷定位

进行BUG定位时,有时需要到数据库查看数据的详细信息

BUG定位----前台后性别不一致(保密和女)

SELECT sex from tp_users where mobile = 13488888888;

页面设置为保密,点击保存显示为【男】。

(1)数据库查询结果是【0】,前端bug

(2)数据库查询结果是【1】,后端bug

1.2.3 借助数据库构造测试场景(需要特定的测试数据)

构造某种测试场景时,可以在数据库里直接修改数据,要比使用界面更有效率

select goods_num from tp_cart

update tp_cart set goods_num = 99999

1.2.4 借助数据库数据备份更新

软件升级过程中,有时会涉及到历史数据的处理,这种情况需要执行升级SQL,并验证结果

2、功能测试与抓包工具

抓包:(package capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包经常被用来进行数据截取等。

功能测试用到抓包工具的场景:

通过抓包工具截取观察网站的请求信息,帮助我们更深入的了解网站

通过抓包工具截取、观察网站的请求与返回信息,帮助测试进行BUG定位与描述

通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能

常用的抓包工具:Fiddler、Charles、F12开发人员工具等

2.1 HTML与HTTP协议

URL:统一资源定位符

HTML:超文本标记语言

HTTP:超文本传输协议


2.1.1 URL


示例: http://localhost/index.php?m=Home&c=Goods&a=goodsInfo&id=46

格式:

协议:客户端和服务器通讯的标准,http、https、ssh等

ip或域名

端口号:协议默认的端口号是可以省略的

http:默认端口80

https:默认端口443

ssh:默认端口22

......

资源路径:资源存放的位置,资源可以是各种超文本信息,如音频、视频等

参数(如 ?m=Home&c=Goods&a=goodsInfo&id=46 )

格式:

用?与URL的主体部分分开

参数的格式 参数名=参数值 ,有多个参数时用&拼接即可

2.1.2 HTML

HTML:HyperText Markup Language ,超文本标记语言

超文本:声音、视频、图片、超链接等

标记:就是通过【<标记符>内容</标记符>】的格式让内容具有不同的表现形式,从而达到超文本的目的

如: <title>百度一下,你就知道</title>

互联网上浏览的网页,本质上就是超文本标记语言。

2.1.3 HTTP

HTTP: HyperText Transfer Protocol ,超文本传输协议,是互联网上最常用的协议之一。

2.2 HTTP请求与响应



2.2.1 基本概念

客户端:用于发送请求,如浏览器、APP等

服务器:处理客户端请求并返回数据,如apache、nginx等

请求:客户端向服务器索要数据

响应:服务里处理完成后,返回给客户端的数据与信息

2.2.2 HTTP请求

请求内容

请求行:

位置是在第一行

请求方式、请求地址、协议及版本

请求头:

位置是在第一行之后,到空行之前

用来描述客户端信息的相关参数,一般以键值对的形式存在,如描述浏览器类型等

请求体:

位置是在空行之后


请求方式(GET 和 POST)

get:用于查询,如搜索商品

post:用于提交数据,相对比较安全,如登录、注册等

2.2.3 HTTP响应

响应内容

响应行:位置是在第一行,包含协议及版本、响应状态码、状态消息

响应头:位置是在第一行之后,到空行之前,告诉客户端服务器相关信息,如web服务器类型

响应体:位置是在空行之后,如登录成功

响应状态码:由3位数字组成,第一位数字代表响应消息的级别

2XX:成功,如200

3XX:重定向,如3014XX:客户端存在问题,如404

5XX:服务器端存在问题,如501

2.3 抓包工具

功能测试与Fiddler

通过抓包工具截取观察网站的请求信息,帮助我们更深入的了解网站

通过抓包工具截取、观察网站的请求与返回信息,帮助测试进行BUG定位与描述

通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能

2.3.1 Fiddler原理

原理:

请求先发送给Fiddler,Fiddler接收请求后转发给服务器

服务器处理请求后将响应数据返回给Fiddler,Fiddler在转发给客户端(浏览器)


2.3.2 Fiddler安装
安装依赖 

Miscrosoft .Net Framework 

安装步骤

 1. 点击【I Agree】 

2. 选择安装目录,默认即可,点击【Install】

3. 等待安装完成,点击【Close】 

启动Fiddler:以Windows10系统为例说明 

Windows ==》Fiddler ==》右键【更多】==》打开文件所在位置 ==》找到Fiddler图标 ==》右键【发送到桌面快捷方式】

2.3.3 Fiddler使用

2.3.3.1 抓包(Inspectors)



2.3.3.2 删除请求

菜单删除:


命令行删除:cls、clear



键盘delete

快捷键:Ctrl + X

2.3.3.3 设置过滤

1. 点击Filters页签,勾选“Use Filters”

 2. Hosts下方的第二个下拉框,选择“Show Only the following Hosts”

 3. 在下方输入框中输入要抓包的主机地址(多个地址用英文分号隔开,如:localhost;127.0.0.1) 

4. 点击右上角的“Actions”,选择“Run Filterset Now”

 5. 如果取消过滤,去掉“Use Filters”的勾选

2.3.3.4 设置断点

修改请求

1. 进入添加会员的页面,填写正确的手机号码和其他信息

2. 打开fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 Before Requests

3. 回到添加会员界面,点击提交按钮

4. 回到Fiddler,修改【请求体】,如修改手机号码内容

5. 点击Fiddler中请求下方的绿色按钮“Run to Completion”

6. 关闭Fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 Disabled

修改响应(扩展)

1. 进入添加会员的页面,填写正确的手机号码和其他信息

2. 打开fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 After Responses

3. 回到添加会员界面,点击提交按钮

4. 回到Fiddler,修改【响应体】,如修改【操作提示】的内容

5. 点击Fiddler中请求下方的绿色按钮“Run to Completion”

6. 关闭Fiddler拦截开关:Rules ==》 Automatic Breakpoints ==》 Disabled

2.3.3.5 AutoResponder(扩展)

自动响应

1.进入AutoResponder

2.选择列表左侧请求,点击【Add Rule】添加mock请求(或点击【Add Rule】手动填写请求地

址)

3.选择响应结果,模拟测试场景(此处支持打开本地文件,根据文件内响应数据(例如json文件)

进行mock)

4.点击右下角【save】,保存响应设置

5.勾选上方选项:

(1)Enable rules:开启或禁用自动重定向功能,勾选上时,激活规则

(2)Unmatched requests passthrough:未匹配的请求穿透,即勾选上时,不影响那些没满足我们处理条件的请求

(3)勾选了这个选项,在规则里面就可以设置是立即返回响应,还是隔多少毫秒返回响应

2.3.3.6 Composer(扩展)



2.3.3.7 弱网测试(扩展)


概念:在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。

从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。

为何要进行弱网测试?

例如:进地铁、上公交、进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。因此,app网络测试,特别是弱网测试显得尤为重要。

我当前所在项目的产品是一款适配于低资源环境的医疗IT系统,目前主要是在坦桑尼亚地区使用。

根据资料显示,在坦桑尼亚等东非国家,普遍使用的都是2G网络,覆盖率达到40%以上,3G网络的覆盖都非常少,并且稳定性较差。由此,对于当前的App应用交付要求即至少在弱网以及无网状态下能正常运行。

步骤:

打开Fiddler,设置代理,并允许远程连接

手机连接电脑的热点网络,或者同在一个局域网内

手机网络连接中,设置网络代理,IP是电脑的同网段IP地址,端口是8888

打开网速模拟模式开关(Rules → Performances → Simulate Modem Speeds )

手机访问APP,或者用手机浏览器访问网络,观察功能响应或者页面刷新速度

如果需要自定义网络的速度,需要到自定义规则中配置(Rules → Customize Rules)


网络环境测试机带宽参考测试数据:

2.3.3.8 HTTPS请求(扩展)


点击【OK】,重启Fiddler。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容