当前位置: 首页 > news >正文

自动化测试 - 黑马头条测试项目笔记

该项目是一款对新闻发布审核查看的项目,分为三个子系统,自媒体端、后台管理系统、和APP客户端,自媒体端是基于PC网站的,可以进行自媒体用户的发布文章需求,后台管理系统也是基于PC网站的,可以进行管理人员的审核文章需求,APP端是用户使用app查看文章

该工作主要是对这三个业务需求去做自动化测试脚本的编写,用到的技术栈有:python,测试框架是pytest,用selenium去进行web自动化测试,使用appium和ADB命令去进行app自动化测试,使用requests实现接口自动化测试,实现了一个PO面向对象模式的封装,基于DDT数据驱动的设计,提高代码的可维护性和复用性,还用了日志处理、错误截图、Allure生成测试报告

然后针对项目的三个子系统的功编写自动化测试脚本,主要有针对自媒体端的发布文章、后台管理系统的审核文章、App端的查看文章用例进行测试脚本的编写,除了这三个主要功能,还需要每个子系统的登录功能这个前置用例的编写

此外这个接口自动化测试主要是自媒体端的登录和发布文章接口,后台管理系统的登录、查看文章、审核文章的接口、APP端的登录、查看文章的接口进行编写,针对这个性能测试的话 主要用locust和ADB命令对web端和APP的性能监视

UI自动化测试流程

自动化测试流程

  1. 需求分析(去对业务进行需求分析,分析每个子系统他的功能模块的主要作用
  2. 挑选适合做自动化测试的功能(根据需求,我们选取项目的核心业务进行测试:如我们针对自媒体web端的发布文章功能,后台管理web端的审核文章功能,app端查看文章的功能进行业务和功能分析;
  3. 设计测试用例(根据所选的自动化测试的功能,去设计每个功能模块的测试用例:比如实现自媒体web端的发布文章功能时,我们需要对自媒体用户的登录和发布文章用例进行测试)
  4. 搭建自动化测试环境
    1. web自动化测试环境
      1. python开发者工具(使用的是pycharm配置 python的解释器)
      2. 浏览器、浏览器驱动(谷歌
      3. Selenium(自动化测试框架
    2. app自动化测试环境(5个)
      1. 手机或模拟器mumu、安卓sdk、python开发工具
      2. appium服务器 去进行测试的
      3. appium服务客户端
  5. 设计自动化测试的项目架构用哪些文件夹 根据是否用po模式、日志、数据驱动
  6. 编写代码  7. 执行测试用例 8. 生成测试报告(使用allure)并分析结果
    1. 注意:自动化测试所属功能测试(此时功能用例已经完成)
    2. 在功能测试之后
    3. 与功能测试所属一个项目 

        使用了PO面向对象模式和DDT数据驱动方法搭建的自动化测试脚本的框架

        针对PO模式,对业务流程进行分层,将页面的公共方法、页面的业务流程、和测试脚本进行分层,搭建了

  • Base层:存放所有⻚⾯公共⽅法查找元素、点击操作
  • Page层:当前⻚⾯要操作的对象的封装(发布文章页面的输入文章标题、内容、选择图片、点击发布等业务流程,最后设计同意入口类方便测试脚本的调用
  • Script层:写一些测试用例脚本层登录、发布文章、审核文章、查看文章
  1. 代码复⽤性  2、脚本层与业务分离,便于维护 -- 如果元素信息发⽣变化了,也不⽤去修改脚本

针对DDT数据驱动,将测试数据和代码进行分离,更好的维护我们的代码

    1. 便于维护(维护的焦点从代码转到测试数据)
    2. 1、编写数据存储文件  2、编写读取数据工具  3、使用参数化引用
    3. 参数化引用@pytest.mark.parametrize 
  • Data:测试数据存储
  • Tool:存储工具

根据日志处理,搭建:日志目录 log包

根据bug截图需求,搭建截图目录 image包

根据测试报告的生成,搭建报告目录 report包

产品介绍

负载均衡

负载均衡:负载均衡器nginx

  • 可以将工作任务分摊到多个处理单元, 提高并发处理能力
  • 负载均衡器建立在现有网络结构上, 使用它可以实现网络设备的带宽, 增加吞吐量, 加强网络数据的处理能力, 提高网络的灵活性和可用性
  • 根据不同的请求,可以根据不同的区域分配给不同的服务器

负载均衡器在工作当中, 要么使用nginx(软件负载均衡), 要么使用F5(硬件负载均衡), 如果使用的是阿里云或者是腾讯云, SLB负载均衡, nginx既可以做负载均衡, 也可以做web前端的中间件

消息队列

消息队列(Message Queue, MQ)是

  • 在消息传输过程中保存消息的容器
  • 消息队列中间件是分布式系统中重要的组件, 主要解决应用解耦, 异步消息, 流量削峰等问题, 实现高性能, 高可用, 可伸缩和最终一致性架构
  • 目前使用较多的消息队列有:

Kafka, ActiveMQ, RabbitMQ, ZeroMQ, MetaMQ, RocketMQ

应用场景

  1. 异步处理 => 将业务逻辑处理由串行方式变成并行方式(好友推荐, 新闻推荐)
  2. 应用解耦 => 消息生产者不再直接将消息推送到消息使用者

订单系统 --> 库存系统

发送短信验证码

  1. 流量削峰 => 秒杀, 抢购活动(用户访问量过大, 导致流量暴增, 应用挂掉)
  2. 日志处理 => 将消息队列用到日志处理中, 解决大量日志传输的问题

测试功能模块

新建文章(自媒体端(第一个子系统)):

登录测试账号->内容管理->发布文章->输入文章标题->输入文章内容->设置封面->选择频道->点击发布->提示发布文章成功->进入待审核状态

 

 - - - 新建文章成功、待审核

公共方法:查找元素、输入、点击

审核文章(后台管理系统(第二个子系统)):待审核需要后台管理去审核:

· 输入审核员账号登录->信息管理->内容审核->选择查询文章类型->点击是否审核通过->确认通过   (公共方法:查找元素、输入、点击

查看文章(app端(第三个子系统)用户端)

手机模拟器:输入账号登录 -> 查看文章是否发布

 

测试用例

抽取功能用例转化为自动化用例

编写自动化测试用例的原则

  1. 自动化用例一般只实现核心业务流程或者重复执行率较高的功能
  2. 自动化测试用例的选择一般以"正向"逻辑的验证为主
  3. 不是所有的手工用例都可以使用自动化测试来执行
  4. 尽量减少多个用例脚本之间的依赖
  5. 自动化测试用例执行完毕后, 一般需要回到原点

  1. 自动化测试用例

 自媒体两条用例:登录和发布文章

后台:登录和审核文章 

  • 项目实施

步骤:分析需求、设计测试点、编写⽤例覆盖测试点、执⾏⽤例、缺陷管理、测试总结

登录需求

  1. 输入正确的中国手机号(11位):文本框失去焦点的时候验证,红色,绿色
  2. 点击发送验证码:如果手机号文本框为绿色,弹出“点击按钮进行验证”;如果手机号文本框为红色,提示手机号不正确
  3. 点击按钮进行验证:拖拽图形到指定位置,按钮消失;拖拽图形未到指定位置,晃动提醒,滑块到初始位置;超过5次,提示尝试过多,请点击重试
  4. 输入验证码
    1. 正确的验证码,并勾选“我已经阅读同意”,点击登录,进入系统
    2. 错误的验证码,并勾选,点击登录,提示验证码错误
    3. 正确的验证码,未勾选,点击登录,提示勾选
  5. 点击登录:手机号、验证码都为绿色,勾选“我已经阅读并同意”,登录成功
  • 登录功能测试点

参考黑马头条实战

登录模块

 

登录⽤例(登录成功、输入手机号模块进行,逆向) 

验证码⽤例(验证码逆向)

 兼容、布局⽤例(兼容、布局)

 滑块

  • 发布文章用例

需求: 1. 文章标题不能小于5个字符

  1. 文章内容不能为空
  2. 频道不能为空
  3. 封面选择(单图/三图/无图/自动)
  4. 点击选择图片(素材库/上传图片切换)
  5. 点击发表,提示新增文章成功,跳转到内容列表,文章状态显示待审核
  6. 点击存入草稿,提示新增文章成功,跳转到内容列表,文章状态显示草稿

 

太多了,急着写论文,下次再编辑吧(可以后台dd发word) 

相关文章:

  • IPoIB模块初始化过程详解
  • 企业使用统一终端管理(UEM)工具提高端点安全性
  • Django项目中创建app并快速上手(pycharm Windows)
  • 【论文笔记】ZeroGS:扩展Spann3R+GS+pose估计
  • Ubuntu 22.04 LTS 安装MinerU
  • window 安装GitLab服务器笔记
  • Python 数据结构速成教程
  • 数据结构:图论入门
  • 深入理解 C# 顶级语句:告别 Main 方法
  • Java Swing-5.jar 使用 jpackage 打包成 windows 可安装应用(exe,msi,免安装版exe)
  • 51单片机介绍
  • c#展示网页并获取网页上触发按钮的值进行系统业务逻辑处理
  • 详解电子邮箱工作原理|SMTP、POP3、IMAP、SPF、MIME
  • 【个人开发】cuda12.6安装vllm安装实践【内含踩坑经验】
  • 机器学习-1:线性回归
  • WPF基础 | 初探 WPF:理解其核心架构与开发环境搭建
  • 计算机毕业设计——Springboot的旅游管理
  • Flask Web开发的重要概念和示例
  • Node.js中Express框架使用指南:从入门到企业级实践
  • 32单片机学习记录1之GPIO
  • logo图片大全简单/淮北seo
  • 建工报名网/网站seo是什么
  • 微信扫码即可打开的网站如何做/相关搜索优化软件
  • 网络营销运营推广方案下载/短视频seo营销系统
  • 哈尔滨市哪里做淘宝网站/国外搜索引擎排名百鸣
  • 公司网站建设方案/杭州百度快照