项目实战--Ego微商小程序

微信小程序简介

时间:2017年1月
创始人:张小龙
定位:取代一切不常用APP,释放手机资源
定义:简称小程序,英文名称MiniProgram,是依附于微信而无需再次下载安装的应用程序。
特点:用户的体验性–实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用(即用即走、清爽体验)
应用领域:零售、出行、医疗
不足:

  • 微信小程序包大小不超过20M
  • 不适用于复杂的业务处理
  • 页面层级建议实际设计不超过三级,官方要求不超过5级

测试场景应用:验证小程序的优点,避免出现小程序的不足

测试专属账号
作用:提供一套合法的专属账号信息,为后续搭建测试环节做准备
APPID

  • 验证小程序的合法性(对外公开)
  • 小程序的唯一标识

APPSecret

  • APPID对应的密码(私有的)
  • 确保 不能泄露

微信小程序与Web项目对比

在这里插入图片描述

微信小程序项目文件分类

在这里插入图片描述

微信小程序通讯模型

应用场景:微信小程序如何和后台进行通讯(做接口测试)
注意:

  • 微信小程序无法直接和后台服务器进行通讯
  • 微信小程序必须依附于微信(客户端/微信接口服务器)进行和后台正常通讯

在这里插入图片描述

微信小程序和APP的区别⭐

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

  • 小程序:进入小程序测试(扫码、搜索、下拉进入、分享、卡包等进行授权即可)
  • APP:通过网站进行下载(下载注册登录)

部署:

  • 小程序:无需下载安装即可使用
  • APP:需要安装、卸载、升级

兼容性:

  • 小程序:微信的版本(最新版本、上一个版本)和手机的分辨率
  • APP:不同的操作系统,同一操作系统的不同版本,屏幕分辨率

熟悉项目

1、项目是干什么的?
依附于微信平台,为用户提供B2C的线上食品零售平台(微信小程序客户端;小程序的后台)
2、项目是给谁用的?
主要为会上网的微信用户使用
3、项目构成模块有哪些?
4、项目的技术栈?

项目基本介绍

在这里插入图片描述

项目基本模块

在这里插入图片描述

项目核心业务

该产品主要提供的服务/应用是什么

  • 正常流程
  • 异常流程

在这里插入图片描述

项目技术栈

前端:以微信小程序为主的客户端,进行发起请求并显示响应结果
后端:以LAMP为架构的服务器,处理前端请求并给出正确的响应的应用服务器
在这里插入图片描述

测试准备

在这里插入图片描述

项目部署

项目部署要求与准备

部署流程

在这里插入图片描述

部署架构图

在这里插入图片描述

组件要求及版本

在这里插入图片描述

项目部署过程与实施

后台服务部署

步骤:

  • 1.本地部署检查:部署前检查本地网络(ping命令检测网络连通性)及环境(软件版本等信息)是否正常
  • 2.安装应用服务:根据项目要求安装对应的组件服务(LAMP-根据架构安装对应的服务组件/软件)
  • 3.上传项目包:服务安装成功后上传后台项目文件包到服务器(后台开发人员写的代码)
  • 4.数据库初始化:进行数据库数据初始化,达成基本使用。开发人员编写的系统必备SQL语句
  • 5.修改配置文件:使其服务安装指定要求运行
  • 6.重启应用服务:使其立即生效
1.通过VMware虚拟机部署检查
  • 确保当前VMware虚拟机连通外网
ping www.baidu.com
  • 检查CentOS的版本是否符合要求
cat /etc/redhat-release
2.安装应用服务

通过集成工具,一次性安装所有应用服务

  • wget:通过网络下载需要软件包
  • ./install.sh:可执行文件脚本

yum -y install xxxx:在线单个安装某个软件

  • 通过LAMP,一键安装部署系统服务
  • 命令生成地址:https://lnmp.org/auto.html
    在这里插入图片描述
    点击生成按钮,将以下命令复制粘贴到Linux命令窗口 回车
    在这里插入图片描述
安装结果查看

部署大约持续30min左右,过程中可能因为网络原因有延迟,部署完成正常结果如下截图
在这里插入图片描述

安装服务验证 systemctl⭐

在终端通过命令验证安装服务的结果
常见服务名:httpd、mysql、nginx、tomcat

# 检查Apache的服务是否运行
systemctl status httpd
# 检查mysql的服务是否运行
systemctl status mysql
# 检查php是否已安装
php -v

# 启动Apache的服务
systemctl start httpd
# 重启Apache的服务
systemctl restart httpd
# 停止Apache的服务
systemctl stop httpd
# 禁用服务(慎用)
systemctl disable 服务名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过tail查看安装日志文件最后几十行:tail -30 文件名
通过cat more less head查看文件内容

3.上传项目包文件

步骤:上传项目文件-解压缩项目文件-修改权限

拷贝后台项目文件包到指定路径下

# 进入默认项目路径
cd /home/wwwroot/default/
# 上传文件包
rz
# 解压缩项目文件egoser.zip到指定项目路径
unzip -d /home/wwwroot/default/egoser.zip
# 修改指定路径下项目对应文件夹egoser权限
chmod -R 777 /home/wwwroot/default/egoser

鼠标拖动:打开finalshell底栏拖入对应的路径下
上传:使用rz命令时,需要先下载 yum -y install lrzsz
下载:sz 文件名,从centos下载文件到本地桌面

.tar.gz后缀文件

tar -zxvf 压缩文件.tar.gz -C 路径
4.数据库初始化

确保系统能够正常运行的必备数据以及数据库和表的信息
导入.sql文件(比如存放路径为/home/wwwroot/default/)

# Linux下执行
# 进入mysql -u 数据库管理员账号(root) -p 数据库管理员密码(123456)
mysql -u root -p

# mysql下执行
# 查看当前所有数据库
mysql>show databases;

# 创建项目对应数据库egowx
mysql>create database egowx;
# 创建数据库并设置编码方式和排序规则
mysql>create database egowx charset uft8 collate utf8_general_ci;

# 方式一:恢复备份文件(在Linux下操作:需要输入数据库密码)
mysql -u root -p egowx < /home/wwwroot/default/egoser/ego.sql

# 方式二:恢复备份文件(在mysql下操作)
# 使用(打开)数据库
mysql>use egowx;

# 设置数据库编码为utf8
mysql>set names utf8;

# 直接导入对接路径下项目的备份文件.sql
mysql>source /home/wwwroot/default/egoser/ego.sql

# 查看某数据库下有哪些表
mysql>show tables;

# 退出mysql
mysql>exit

在这里插入图片描述
使用Navicat连接
第一步:
在这里插入图片描述
第二步:

在这里插入图片描述

5.修改配置文件

目的:告诉客户端当前访问的数据文件存放的位置,以及谁可以访问,通过哪个端口可以访问,访问的服务器名等信息

Apache配置文件

作用:告知部署人员,项目文件应该存放的位置、端口、主机域名等信息,方便前端请求的时候,后台的Apache服务直接根据配置文件找到对应的文件路径
Apache虚拟主机配置文件名:httpd-vhosts.conf
在这里插入图片描述
配置文件说明
在这里插入图片描述

  • 修改Apache的虚拟配置文件
# 查找Apache的配置文件
find / -name httpd-vhosts.conf
# Apache的配置文件路径
cd /usr/local/apache/conf/extra/
# 重命名配置文件
mv httpd-vhosts.conf httpd-vhosts.confd
# 上传已修改好的httpd-vhosts.conf 输入rz后会弹出一个 选择文件夹的窗口
rz
# 重启Apache服务
systemctl restart httpd

在这里插入图片描述

MySQL数据库在Linux下的默认配置文件 my.cnf

  • 修改项目的配置文件(服务端文件)
#1.修改自己申请的APPID和APPSecret
cd /home/wwwroot/default/egoser/application/extra/
# 文件路径: /home/wwwroot/default/egoser/application/extra/wx.php
vi wx.php
i 进入编辑模式

  // 小程序app_id
  'app_id' => 'wxc4f7f3dabxxxxxx',
  // 小程序app_secret
  'app_secret' => 'fbd81e771fe6bba32d515a1d52adxxxx',

Esc返回命令模式
:wq 保存退出
:q! 强制退出
6.重启应用服务

目的:使修改后的配置文件立即生效

#重启apache服务
systemctl restart httpd
#重启mysql服务
systemctl restart mysql
#查看服务是否正常
systemctl status httpd

通过浏览器验证重启后的服务是否正常
其中一个接口地址:http://虚拟机IP/api/v1/banner/1
查看返回的数据是否是json的数据即可

本地Windows配置
虚拟域名作用

因为小程序无法直接和后台进行通讯,需要借助于微信客户端,但是微信客户端无法识别具体的IP地址,所以需要修改本地的hosts配置文件,让本地请求的“假域名”优先找到本地地址,指定本地的服务器IP

为了确保通过本地Windows发送的指定域名指向特定的IP对应的服务器
修改本地Windows的hosts文件
在这里插入图片描述
通过浏览器验证:e.cn/api/v1/banner/1
查看返回的数据是否是json的数据即可

本地macOS配置

在这里插入图片描述

前端部署

1.客户端项目导入

微信开发在工具导入项目

在这里插入图片描述

2.客户端配置修改

修改APPID(自己申请的和后台的一样)和访问后台的API接口
在这里插入图片描述

3.联调结果验证

在这里插入图片描述
修改完成后点击 编译 运行

Ego微商项目计划

项目测试流程

  • 1.需求分析与评审
  • 2.编写测试计划与方案
  • 3.设计测试用例与评审
  • 4.执行测试用例与缺陷跟踪
  • 5.编写测试报告及总结

需求分析与评审

目的

  • 根据需求说明书确保对于当前需求理解一致
  • 对于有异议地方及时和产品沟通确认
  • 已确定的需求能够指导测试执行
  • 对于已确定的需求预估所需要的时间

评审人员

  • 产品人员
  • 开发人员
  • 测试人员

评审形式

  • 会议
  • 邮件

测试计划与方案核心内容

在这里插入图片描述
编写思路

  • 制定一个简易模版(word),列出计划和方案的核心要素
  • 根据多级标题进行编制
  • 每个标题中的具体内容(正文)可以借鉴需求文档、设计文档、有历史测试计划和方案的文档
  • 找原有计划与方案进行修改,修改为属于自己项目的内容
  • 可以找相关人员进行评审,最后进行完善修改

Ego微商项目设计

测试设计思路

作用:知道如何进行实际的测试设计和执行的过程

测试依据

  • 文档:需求说明书、UI设计图(量化指标描述界面信息)、原型图、业务流程图
  • 人员:产品、测试人员
  • 环境:本地测试环境、预生产环境、正式环境

设计用例

能够将需求转化为可验证测试的功能点及测试用例,能够覆盖需求并满足用户实际使用场景

  • 熟悉需求:理解一致、查缺补漏、指导执行
  • 整理测试点⭐:①拆分测试点:显示(检查功能有无)、操作(检查功能好不好使)②拆分的方式:按照菜单构成(例如后台测试,按菜单级别)、按照页面布局(从上到下、从左到右,例如前台测试)、按照需求文字描述③拆分的原则:覆盖需求、所见及所测(当前功能紧密关联的模块进行测试;关联不紧密可以和对应模块的测试人员对接清楚)、站在用户使用角度
  • 编写测试用例:通过Xmind整理测试点、按照Excel模板编写用例
  • 评审测试用例:理解一致、查缺补漏、指导执行

评审用例

确保设计的用例覆盖需求,能够看懂理解,没有遗漏,同时能够指导测试执行

执行用例

依据测试计划按照功能点及功能组合的形式执行用例,并且对于执行结果确认

  • 执行时间:按照测试计划执行、按照实际提交时间
  • 执行轮次:至少3轮
  • 执行用例:单功能测试–按照用例次序顺序执行;功能组合测试–选择优先级高的用例先执行

跟踪缺陷

对于执行失败的用例提交缺陷报告,并跟踪缺陷确保该问题能够被修复验证通过

  • 失败:bug产生 – 可复现、唯一性、规范性;验证bug – 缺陷跟踪流程 – 已修复fixed;回归测试 – closed、reopen
  • 成功 – pass

小程序

测试点拆分

基于微信小程序的规范性要求,按照布局拆分最为恰当
在这里插入图片描述

测试点拆分 — 导航区

导航区是微信小程序模块公共区域,页面显示布局分格和具体的功能模块无关
导航区和标签区的显示是联动对应的
在这里插入图片描述

在这里插入图片描述

测试点拆分 — 标签区

标签区是微信小程序模块公共区域,页面显示布局分格和具体的功能模块无关
标签区操作和导航区的显示是联动对应的
在这里插入图片描述
在这里插入图片描述

测试点拆分 — 展示区

页面类测试显示:目的验证功能有没有
页面类测试操作:目的验证功能是否正常
在这里插入图片描述
进入小程序的方式验证测试
使用小程序的各种场景覆盖
能够正常退出小程序
在这里插入图片描述

Ego微商主页模块功能测试设计

导航区

需求说明

在这里插入图片描述

测试点

在这里插入图片描述

测试用例

在这里插入图片描述

显示区

1.轮播图

在这里插入图片描述

测试点

在这里插入图片描述

关于轮播图数量修改操作

1.进入后台上传图片
使用rz 上传轮播图
在这里插入图片描述
2.进入数据库建立关联
image表创建图片信息
banner_item中关联上传的轮播图片(图片id、商品id)
在这里插入图片描述

测试用例

在这里插入图片描述

2.主题图
3.新品展示

订单详情展示
在这里插入图片描述
在这里插入图片描述

业务流程测试-业务流程图

在这里插入图片描述

测试用例

在这里插入图片描述

Ego微商主页模块功能测试执行

用例提取执行

  • 根据测试计划执行:根据测试计划安排,结合开发实际提交的模块范围选取对应模块用例进行一一执行,并记录执行过程及结果
  • 根据实际提交执行:根据开发实际提交时间,沟通并修正测试计划,并按照提交模块范围选取对应模块用例进行一一执行,并记录执行过程及结果
  • 按照业务重要程度执行:根据测试进度,单模块测试通过后,按照业务流程要求,结合用户实际使用场景进行业务流程的全面测试,并记录执行过程及结果
  • 按照验收优先级执行:最终根据用例优先级提取关联用户实际场景的业务用例,站在用户使用角度进行执行,直到验收通过

提交bug原则

  • 可复现:确保发现的bug是可以复现的
  • 唯一性:按照用例执行的结果,原则上要求一个bug报告一个相对独立的问题
  • 规范性:提交的bug符合公司的规范要求,bug描述尽可能准确严谨

缺陷跟踪确认

在这里插入图片描述
回归测试注意:

  • 回归的版本号
  • 影响范围

非功能测试设计

  • 兼容性测试:兼容微信版本(当前和上一个)、设备分辨率(UI元素自适应显示)
  • 易用性测试:根据实际用户遵循其专业性、结合功能验证其体验性
  • 弱网测试:WiFi网络正常使用、移动网络正常使用、WiFi和移动网络切换正常使用
  • 性能测试:首次加载时间、刷新白屏时间、设备CPU和内存耗费比例

测试要求

01用例要求

大多数非功能测试不需要单独编写用例,可以直接使用业务流程用例结合功能点验证非功能点

02人员要求

非功能测试一般要求测试人员测试,部分非功能测试需要有专业人员测试(UI布局、性能指标)

03时间要求

一般在功能测试完毕后,再进行非功能测试

在这里插入图片描述
测试点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试报告总结

测试报告作用

  • 测试过程的详细记录和总结,目的为了验证记录产品的测试质量
  • 测试报告体现产品质量,确定能否上线发布
  • 测试报告的编写标志着测试活动的结束

测试报告核心内容

  • 测试过程回顾:过程使用说明–测试过程中实际使用的环境、资源、进度、配置等信息
  • 测试统计分析:数据统计分析–测试过程中产生的数据,主要是测试用例缺陷报告的数据(统计产生的bug数量)
  • 测试结果确认:测试结果的模块确认和整个产品系统的整体结果确认
  • 测试总结改进:测试过程中的地方和不足之处的总结,为后续项目提供经验

在这里插入图片描述
测试bug统计
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试bug分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试过程中如果出现不可复现的bug如何处理?

  • 自己思考刚才测试过程有什么差异的地方:测试步骤、测试账号、测试网站、测试环境
  • 尝试多次测试复现(换个别的电脑或者环境进行复现),可以借助于抓包工具、借助数据库
  • 如果此时问题比较严重,找技术人员协助复现(高级测试人员、开发人员)
  • 如果时开发人员,可以让开发人员协助打印调试日志
  • 更新系统然后再尝试复现测试,暂时放弃(可以在后续版本再次验证);如果后续版本出现了,此时直接提交bug(开发人员有相关的调试日志了)

功能测试

入口测试

  • 小程序二维码扫一扫
  • 长按识别小程序二维码
  • 微信发现-小程序
  • 公众号图文群发进入小程序
  • 附近的小程序
  • 好友分享、群分享
  • 搜索小程序
  • 小程序历史列表
  • 桌面小程序

与微信的交互

  • 支付–微信支付
  • 卡包、钱包 – 优惠券用来抵扣
  • 来微信消息 – 是否可以继续支付
  • 来微信视频通话 – 是否可以继续支付
  • 来微信语音通话 – 是否可以继续支付

权限测试

  • 未授权微信登录小程序:未授权时,一般使用一些业务功能时,弹出提醒:先授权再操作对应功能;在提交数据到后台的时候,会提示补充相关身份信息才能提交成功
  • 授权后,可以直接用该账户权限进行操作
  • 同一微信号在不同手机端登录授权查看数据权限:同一微信号在不同手机微信端授权登录同一小程序之后,所能查看的数据和操作的权限都应该是同步一致的

界面测试

  • 点击:点击、双击
  • 跳转:当前页、下一级、上一级
  • 滑动:下拉刷新、上拉触底、左右翻页、双指滑动
  • 输入:手动输入、下拉框选择、文件/图片上传
  • 输出:加载响应、输出准确
  • 分享:分享载体、分享权限

兼容性测试

  • 手机操作系统:Android、IOS
  • 系统版本
  • 屏幕大小
  • 微信版本
  • 微信上其他小程序的兼容

易用性测试

  • 内容是否容易理解
  • 图片是否清晰
  • 业务操作是否繁琐
  • 提示是否合理

性能测试

  • 页面白屏时间
  • 页面首屏时间
  • 资源占用:CPU、流量、电量、内存
  • 前端页面渲染时间

安全测试

  • 传递数据是否安全
  • 身份信息是否加密

网络测试

  • 网络切换,3G 4G 5G Wifi
  • 断网测试
  • 弱网测试:是否给予合理提醒、丢包是否有重发机制
  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值