微信小程序简介

时间: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
  • 断网测试
  • 弱网测试:是否给予合理提醒、丢包是否有重发机制

项目实战--Ego微商小程序相关推荐

  1. 【博学谷学习记录】超强总结,用心分享|软件测试课外拓展Ego微商小程序项目

    目录 Ego微商小程序项目 1. Day01 + Day02 1.1 今日目标 1.2 开发者工具 1.3 熟悉Ego微信小程序项目 1.4 项目部署步骤 1.4.1 部署前的准备 1.4.2 小程序 ...

  2. HaaS EDU物联网项目实战:微信小程序实现云养花

    HaaS EDU K1是一款高颜值.高性能.高集成度的物联网开发板,板载功能强大的4核(双核300Mhz M33+双核1GHz A7)主芯片,2.4G/5G双频Wi-Fi,双模蓝牙(经典蓝牙/BLE) ...

  3. 项目1:Ego微商小程序

    项目介绍 "Ego微商"微信小程序,主要针对有特色的食品类商品线上零售.通过微信平台大流量在一定程度上提升了特色食品的影响力. 项目技术实现 该项目分为前后端,前端通过:WXML+ ...

  4. 微信第一个小程序----------EGO微商小程序部署搭建

    需要的工具: centos 7.x以上的镜像文件    我使用的是CentOS-7-x86_64-DVD-1708 本地VMware 15.5以上         我使用的是VMware 15.5 p ...

  5. 软件测试实战:Day02-完成黑马Ego微商小程序的前后台本地部署

    更多功能测试以及全套学习路线图均在专栏,↑↑戳进去领取~ 系列文章目录

  6. 软件测试实战:Day3-完成黑马Ego微商小程序的测试设计和执行

    更多功能测试以及全套学习路线图均在专栏,↑↑戳进去领取~ 系列文章目录

  7. 模式先行a6shop微商小程序引领新零售

    新零售与传统零售,线上与线下如何结合?这几个当下火热的词语,相信你都有所耳闻,但是对于模式的选择,却少有人能有明确的决定.基于互联网商业场景大爆炸时代,定式的系统不足以支撑企业业务发展,做新零售更是离 ...

  8. 小程序项目:基于微信小程序的答题系统——计算机毕业设计

    运行环境 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/ ...

  9. 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...

    转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...

  10. (微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好

    转载地址:(微信小程序)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 作者:Happy王子乐 个人网站(整理 ...

最新文章

  1. 0x02.基本算法 — 递推与递归
  2. ubuntu安装javahadoop
  3. 5、位运算符(7个):实例
  4. php fpm工作原理,什么是phpfpm的工作原理?
  5. C++set容器-大小和交换
  6. 为什么把devc++上的程序发到qq_微信上能登陆QQ了!腾讯QQ小程序使用体验
  7. 某大型银行深化系统技术方案之九:核心层之流程数据管理
  8. 为什么 Math.min() 比 Math.max() 大?
  9. HikariCP 的使用
  10. 数据通信最新技术复习
  11. Quartus-II入门(全加器)
  12. tomcat本地运行web项目图片显示不出来
  13. FreeRTOS临界区操作
  14. 2019-2-14SQLserver中拼音查询数据
  15. 设计模式(十一)策略模式
  16. 死区特性函数以及MATLAB验算
  17. android直接连接本地数据库文件,Android 直接连MySQL数据库
  18. 文科生本科专业能学计算机吗,请问高中文科生到大学里学“软件技术”这个专业,上课能听懂,跟得上么?...
  19. ubuntu12.04编译安装crtmpserver
  20. 机器人教育在高科技领域的主观作用

热门文章

  1. win7 显示文件扩展名
  2. 教你寫代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!
  3. 利润分配计算机公式,利润与利润分配表计算公式大全
  4. Python 数据分析 —— Matplotlib ②
  5. 什么是一维表 什么是二维表
  6. supercharge快充_IQOO、小米快充技术对比,27W快充和44W快充,到底哪家强
  7. MATLAB2018a解压文件损坏,文件解压失败与压缩文件文件已经损坏的解决办法
  8. php开发我的世界插件,[搬运插件] [服务端插件] [管理]PlotMe——地皮插件[1.2.5-1.10.2]...
  9. 计算机相关的外国文献,计算机发参考文献外国 计算机发参考文献有哪些
  10. Django2.1文档