13 某知名网站测试实战

13-5 某知名网站测试实战1

1)大纲

  • web 基础
  • 项目背景
  • 项目流程
  • 需求分析
  • 测试计划编写

2)实战内容

1.web 基础

&1 什么是 web
  • web(World Wide Web):全球广域网,也称为万维网
  • 技术视角:布局设计、代码编写、数据库建立、网络平台选择
  • 用户视角:使用浏览器上网时所浏览的网页
&2 系统架构
  • B/S:Browser/Server
    • 浏览器查看的应用程序,web就是B/S架构,通过浏览器、服务器、数据库访问web网页
  • C/S:Client/Server
    • 需要安装额外的客户端才能使用
面试问题1

区别:

  • 维护量方面:B/S比C/S更好维护,B/S只需要后台升级,C/S比如app每次升级需要重新发版本,重新装客户端
  • B/S架构需要对浏览器兼容进行测试,C/S偏重对比如系统的升级,安装卸载,不同的支持的平台等问题的测试
  • B/S-web建立在广域网之上,适应范围更广一些, 关注服务器负载,性能一些问题
  • C/S-app
&3 web 架构
  • 界面层(User Interface layer)
  • 业务逻辑层(Business Logic Layer)
  • 数据访问层(Data access layer)
&4 网页
  • 静态网页:和服务器没有数据交互
  • 动态网页:网页数据可以和服务器进行数据交互
&5 URL
  • Uniform Resoure Locator,统一资源定位符
  • URL 的格式
    • schema 😕/ host [:port] /path [query # fragment ]
    • 协议(http/https/ftp等)😕/域名(或ip)[:端口,没有使用默认端口]/资源相对路径?请求参数(不同参数用&分割) # 片段(不会发送给服务器,很少用到)
    •   https://www.baidu.com/s?wd=霍格沃兹测试学院&rsv_spt=1&rsv_iqid=0x85a0d0b9000677ee
      
&6 HTTP
  • HTTP 协议
  • HyperText Transfer Protocol
  • 超文本传输协议
  • https 是更安全的http协议
&7 浏览器工作原理
*面试问题2

问题:浏览器中输入百度首页网址,回车,发生了什么?

  • 发送 HTTP 请求,接收 web 服务器的响应并解析成 web 页面
    在这里插入图片描述
    dom树:html的文档对象模型,可以理解为网页的API,把网页中的各个元素看作一个个对象,js就可以对dom进行动态的网页的修改
&8 DNS 解析
  • DNS(Domain Name System,域名系统),映射域名和服务器IP
  • 使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串
面试问题3
  • DNS解析原理:
    • 发送请求DNS解析,先到本地【hosts】文件查找
    • 找不到再到上一级【域名服务器】查找,查到了写在hosts文件里
    • 如果本地域名服务器没有,再到根域名服务器查找
    • 一级一级去查,最终得到IP地址和域名的映射关系
    • 对应根据映射关系找到服务器地址进行访问
    • 在服务器查到的映射关系也会保存到缓存里, 下次访问直接从缓存里拿,不会每用都访问服务器
&9 web 服务器
  • Apache
  • Tomcat
  • Nginx
  • IIS

2.项目背景

&1 项目介绍

企业微信

&2 模块介绍

通讯录 – 添加成员
在这里插入图片描述

3.项目流程

&1 web 测试流程
  • 需求分析
  • 测试计划编写
  • 测试用例编写
  • 用例执行
  • 回归测试
  • 兼容性测试
  • 安全测试
  • 走查验收(UI、产品)
  • 测试总结报告

4.需求分析

&1 需求文档

在这里插入图片描述

&2 需求评审

在这里插入图片描述
在这里插入图片描述

&3 需求分析步骤
  • 明确测试范围
  • 明确功能点
  • 明确业务流程
  • 明确输出结果
  • 分析异常流程
  • 预估测试需要的时间和资源
&4 需求分析实战

企业微信web版

  • 添加成员
*1 测试计划编写
1 测试计划作用
  • 方便宏观调控,进行相应资源配置
  • 方便了解整个项目测试情况以及项目测试不同阶段的所要进行的工作
2 测试计划模板

在这里插入图片描述

3 测试计划编写要点

5W+H原则

  • why:为什么要进行这些测试
  • what:测试哪些方面,不同阶段的工作内容
  • when:测试不同阶段的起止时间
  • where:相应文档,缺陷的存放位置,测试环境等
  • who:项目有关人员组成,安排哪些测试人员进行测试
  • how:如何去做,使用哪些测试工具以及测试方法进行测试
*2 测试计划编写实战

企业微信 web 版

  • 添加成员

课堂资料
链接: https://pan.baidu.com/s/1aMMOXyEL-0zPBdWTNcWzhA 密码: oj68

13-6 某知名网站测试实战2

1)大纲

  • 测试用例设计
  • 测试用例评审
  • web 测试用例设计总结
  • 测试执行
  • 测试总结

2)实战内容

1.测试用例设计

&1 设计步骤
1.划分功能模块
2.正向功能验证
3.单个功能项验证
4.功能之间交互验证
5.隐形需求
&2 测试用例设计实战

企业微信 web 版

  • 添加成员模块

2.测试用例评审

&1 测试用例评审要点
  • 测试用例的本身的描述是否清晰,是否存在歧义
  • 测试用例内容是否正确,是否与需求目标相一致
  • 测试用例的期望结果是否确定、唯一
  • 测试用例是否覆盖了所有的需求
  • 测试用例是否具有可执行性
  • 是否从用户层面来设计用户使用场景和业务流程的测试用例
  • 场景测试用例是否覆盖最复杂的业务流程
  • 用例设计是否包含了正面、反面的用例

3.web 测试用例设计总结

  • UI 测试
  • 搜索测试
  • 表单测试
  • 输入域测试
  • 分页测试
  • 交互性数据测试
  • 链接测试

4.测试执行

&1 bug 定位
  • 前端问题:查看源码
  • 通过网络数据定位:抓取网络数据分析
  • 后台错误:分析日志
&2 浏览器开发者工具
  • console控制台:js调试,可查看console.log日志

  • sources:存放页面js文件,调试js源码

  • performance:性能面板,分析页面运行性能状况

  • memory:监控页面运行时内存使用情况

  • application:应用,记录网站加载的资源信息,e.g.缓存数据,字体,cookie

  • security:安全,判断当前网页是否安全,使用https协议都属于安全网站

  • lighthouse:页面性能分析工具

  • Elements 面板

    • 定位元素
      在这里插入图片描述

    • 编辑元素

    • 编辑元素样式
      在这里插入图片描述

  • Network

    • 记录网络活动
      preserve log是否保存之前的抓包数据

    • 清除缓存
      在这里插入图片描述
      在这里插入图片描述

    • 模拟网络
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述在这里插入图片描述

    • 查看接口依赖关系:shift + 鼠标悬浮
      在这里插入图片描述

    • 查看网络数据
      在这里插入图片描述

    • copy请求
      在这里插入图片描述
      HAR:httprunner,Charles等可识别的文件,json格式,记录了每一个http请求从发出到收到完整的响应中间所花费的所有的时间和具体内容

    • 搜索网络数据
      在这里插入图片描述

    • 筛选资源
      在这里插入图片描述
      在这里插入图片描述

    • 资源排序
      在这里插入图片描述

    • 阻止请求
      command+shift+p 打开界面输入block
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

&3 兼容方案
  • 浏览器兼容
  • 操作系统兼容
  • 分辨率兼容
&4 兼容测试要点
  • 正向功能
  • 界面展示
*1 浏览器兼容

在这里插入图片描述

*2 操作系统兼容

在这里插入图片描述

*3 分辨率兼容

在这里插入图片描述

&5 兼容测试工具
  • IETester:可以方便的解决IE浏览器的兼容问题
  • Browsershots:一个在线测试工具,支持很多浏览器
  • 开发者工具 - Toggle device toolbar
*1 Toggle device toolbar

在这里插入图片描述

  • 模拟移动设备界面

  • 自定义设备

  • 旋转屏幕

  • 生成页面快照
    在这里插入图片描述

  • 显示标尺
    在这里插入图片描述

  • 缩放视图
    在这里插入图片描述

  • 限制网络流量和 CPU 占用率

&6 连接速度测试
  • web 页面响应时间
  • 测试方法:浏览器开发者工具
    在这里插入图片描述
  • resource scheduling
    • queueing:排队等待时间
  • connection start:连接时间
    • stalled:请求暂停时间
    • initial connection:每一步创建连接时间
    • SSL:SSL连接时间
  • request/response:请求响应时间
    • request sent:请求发送时间
    • waiting:浏览器等待第一个字节响应的时间
    • content download:下载内容时间
*1 连接速度问题分析
  • 排队时间太长
    在这里插入图片描述
    优化:1)使用http2.0协议;2)删除不必要的请求

  • 请求第一个字节的时间过长
    在这里插入图片描述
    优化:客户端服务端连接速度较慢,需要 整体后端响应性能优化

  • 内容下载缓慢
    在这里插入图片描述
    可能原因:1)客户端服务端连接速度慢;2)需要下载的数据内容太庞大
    优化:整体响应字节,要下载的内容缩小一些

&7 负载测试

测量 Web 系统在某一负载级别上的性能,以保证 Web 系统在需求范围内能正常工作。
负载级别:某个时刻同时访问 Web 系统的用户数量、在线数据处理的数量
测试方法:性能测试工具 JMeter

&8 压力测试
  • 压力测试:测试 Web 应用系统会不会崩溃,在什么情况下会崩溃
  • 测试方法:性能测试工具 JMeter
&9 SQL 注入
  • SQL 注入:将 SQL 语句添加到输入参数中,传递到服务端解析并执行的一种攻击手法
  • 测试方法
  • 输入域输入特殊的 SQL 语句
  • 利用工具:AppScan、ZAP、Sqlmap
&10 XSS 跨站攻击
  • XSS 跨站攻击:恶意攻击者往 web 页面插入恶意脚本代码,而程序对于用户输入内容未过滤,当用户浏览该页面时,嵌入其中的 web 里面的脚本代码会被执行,从而达到恶意攻击用户的特殊目的。
  • 测试方法:输入域中加入 js 脚本语句
*1 输入域安全测试
null
NULL
javascript
<script></script>
<title>
<html>
<script>alert("abc")</script>
doucment.write("abc")
<b>hello</b>
1’ order by 1 #
1' or '1'='1
' or 1=1#

5.测试总结

&1 测试报告模板

在这里插入图片描述

&2 报告总结要点
  • 人力投入
  • 用例覆盖情况
  • Bug 的分类及数量统计
  • 遗留 Bug 情况
  • 测试风险
  • 测试对象评估
  • 测试结论

3)课堂资料

链接: https://pan.baidu.com/s/1aMMOXyEL-0zPBdWTNcWzhA 密码: oj68

4)课后作业

面试问题4*必考题

面试设计测试用例常见题目:

  • 测试淘宝 web 版-购物车,列出测试点(xmind)
### 自动化测试实战技巧和案例 #### 实战技巧 1. **选择合适的工具和技术栈** 在开展自动化测试之前,需根据项目需求选择适合的技术栈。例如,在 Web 应用程序中,Selenium 是一种广泛使用的工具,能够模拟用户的交互行为并验证功能是否正常工作[^2]。 2. **采用 Page Object 模式 (PO 模式)** 使用 PO 模式可以有效提高代码的可读性和可维护性。该模式的核心思想是将页面上的元素及其操作封装到类中,使得测试脚本更加清晰简洁。这种做法不仅减少了重复代码量,还便于后续修改和扩展[^3]。 3. **数据驱动测试方法** 数据驱动测试允许开发者通过不同的输入参数运行相同的测试逻辑,从而覆盖更多场景而无需编写额外的代码。这种方法特别适用于需要多次执行相同流程但每次传入不同变量的情况[^4]。 4. **持续集成与部署(CI/CD)** 将自动化测试融入 CI/CD 流程有助于尽早发现问题,并减少人工干预的时间成本。Jenkins 或 GitLab CI 等平台支持定时触发构建任务以及自动执行单元测试、接口测试甚至端到端 UI 测试[^1]。 5. **性能监控与优化** 性能测试作为质量保障的重要组成部分不可忽视。利用 Locust 或 JMeter 这样的开源工具来进行负载压力测试可以帮助识别瓶颈所在之处进而采取措施加以改进[^2]。 6. **日志记录与报告生成** 良好的日志管理机制对于定位失败原因至关重要;同时详尽美观的结果呈现也有助于团队成员理解当前状态。Allure Reporter 提供了一种可视化的方式展示整个测试周期内的各项指标变化情况。 7. **异常处理策略制定** 预先考虑可能出现的各种错误情形并为之准备相应的解决方案是非常必要的。这包括但不限于网络连接中断、弹窗提示框干扰等情况下的应对办法[^1]。 8. **版本控制系统的合理运用** 所有的源文件都应该存放在像 GitHub/GitLab这样的远程仓库里以便多人协作开发同时也方便追踪历史变更记录[^3]。 9. **定期回顾与调整计划** 定期评估现有方案的有效程度并对不足部分作出相应改变以适应不断演进的产品特性要求[^4]。 --- #### 经典案例分析 ##### 案例一:电商网站登录注册模块的功能测试 目标是对某知名电商平台的新用户注册及已有账户登陆两项基本服务进行全面检验。具体实现如下: - 构建独立的 `LoginPage` 和 `RegisterPage` 类分别对应两个主要界面; - 基于 Excel 表格加载多种组合形式的数据集用于填充表单项; - 结合断言语句确认跳转后的 URL 是否符合预期结果; - 记录每一步骤耗时并通过邮件通知相关人员查看最终汇总文档[^2]。 ```python from selenium import webdriver import unittest class TestLogin(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome() def test_valid_login(self): self.driver.get("https://example.com/login") login_page = LoginPage(self.driver) login_page.enter_username('test_user') login_page.enter_password('securepassword!') dashboard_url = 'https://example.com/dashboard' assert self.driver.current_url == dashboard_url, f"Expected {dashboard_url} but got {self.driver.current_url}" if __name__ == "__main__": unittest.main() ``` ##### 案例二:银行应用转账交易的压力测试 针对一款在线金融服务产品发起大规模并发请求旨在测量其极限承载力水平。以下是简化版的操作指南: - 创建虚拟用户群组按照预设比例分配至各个分支网点; - 循环调用 API 接口提交随机金额数值直至达到设定次数上限为止; - 收集响应时间分布直方图以及其他关键性能指标绘制图表辅助决策者判断系统稳定性[^2]。 ```bash locust -f locustfile.py --host=https://bankapi.example.org ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢思小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值