如何测试微信应用号

每一次微信的动作都是商机,而随着微信应用号的即将面世,微信应用号的开发和测试又会成为一股新的风向。
其实经常有人问到微信服务号或者微信订阅号怎么测试的相关内容,可能总觉得比较缺乏技术含量不太想说,这次看了下应用号,就把所有问题都统一起来一起说一下吧。
架构
做测试首先应该从整体看起来,架构体系决定了测试的思想。微信的整个开发都基于下面几个东西。
1.开发者信息
首先是开发者ID,包括Appid和AppSecret两个内容,在微信开发者上设置的。一个用来唯一标示应用类似于用户名,另外一个是登陆的类似密码的东西。
2.接口
接口测试测试工具,对于应用来说第一件事情就是通过前面的用户名appid和密码appsecret来获取token令牌。
在后续的请求中,使用令牌来完成(令牌有点cookie或者sessionid的概念,应该也有超时的控制)
3.前端页面
微信提供了一个前端调试工具(微信Web开发者工具),其实你也可以认为是一个chrome的定制版
在企业号、公众号这类的开发都是在这个平台上实现的。
4.交互
整个交互过程可以这样理解,通过微信的公开接口来获取一些微信用户的信息以及关键交互,而额外的内容是需要在自己服务器上实现的。
可以这样理解,微信上来登陆,获取用户信息,把用户信息作为参数传送给自己应用的登陆部分并且绑定用户的一个UID,从而实现的微信账号和应用账号的绑定。
如何测试
在聊过上面4点架构内容以后,测试的内容就可以来说了。
1.功能测试
A.如果做基本功能,可能就不需要知道appid和appsecret了,这样的测试可以理解成没什么技术含量的点点过程。真的要深入测试,那么包含从微信接口上获取数据到自身系统的部分,检查下是不是数据过来了,过来的对不对,高级点可以抓一下包看一下,普通点就看数据库。
B.适配兼容,由于是H5的内容,在不同浏览器上和手机分辨率上仍然存在适配问题。
C.手机的一些专项测试,基本可以不要考虑,因为是H5的内容,所以大多数问题也解决不了的。

2.非功能测试
这块可以谈的东西比较多,包含性能、接口、自动化。
2.1性能测试
性能问题主要有两个点:
A.微信接口的性能
这个不归你管,你也不用测,因为微信自己有个规范来限制超时和连接数,所以系统在别人那边你做不了啥。
B.自己系统的性能
虽然你要从微信的接口上拿数据,但是最终的处理还是会回到自己的系统上,所以这块的性能测试会比较重,加上微信的交互体系决定了什么都要去服务器上问,对服务器上接口的负载是很高的,一旦某一个请求或者某一个业务的请求出现点性能问题,可能就会功亏一篑。
那么要读微信接口的内容怎么办?做个Mock服务器就是必须的了,要么缓存掉微信服务器返回的数据,要么自己做个假的mock应答。
2.2 接口测试

由于所有的内容其实都是所谓的微服务,所以对于这些服务的接口测试是十分重要的,前面性能的问题解决了,接口的问题自然也就解决了。

可以说接口测试是所有测试中最重要的基本保障测试。

2.3 自动化测试
H5的自动化,就涉及到浏览器端和手机端,几乎就是robotium/appium+webdriver的天下。个人觉得意义不大,因为接口都测好了,而微信业务也相对简单,手工跑跑就差不多了。如果非要顶上一个遍历的概念,我还是觉得走monkey这类纯坐标体系的也许更好点,验证下是不是对应的请求都发出来了即可。
应用号
到这里为止其实都在谈企业号,那么我们的主题不是应用号么?

接着来说下应用号,根据云层最近看到的文章和相关介绍,应用号是一个平行于企业号的东西,应用号的开发和企业号很像,但是有些区别,比如

可以看到开发UI的代码并不是H5的基本标签,而是换了一套微信自己的标签体系,可以这样认为微信为大家定制了一套UI控件(Frame),来解决以前H5某些无法实现的功能,而这些东西可能是基于Hybrid模式的,就是非完全H5的内容,而是基于微信体系的控件体系的。

类似于微软WPF中的XAML,将布局转化到xml,事件执行走JS体系,自己的容器完成了布局到CSS的挂接至于是不是生成一个源生的控件还是一个特殊封装的控件就要等结果出来了。

从开发人员的角度就是我靠,又要从B/S体系换回到C/S体系了,DOM这套不要折腾了。
对测试人员来说,其实变化不大,因为本来也不需要知道实现这层是怎么做UI的,更多关心的是控件或者按钮能不能用和服务器交互怎么样,从某些角度来说对测试是几乎透明的。
应用号测试
那么应用号测试的变化在什么地方呢?
A.调试可能会麻烦点,看微信怎么给平台。因为基于微信自己的体系,如果要非要在线调试就麻烦了。也就是说以前可以开个网页调试跟踪,现在要在线了,除非微信给你一个集成好自身体系的开发工具。
B.微信自己的坑,因为是基于微信的控件及某些模块体系,如果它自己做的有问题,那么你是无能为力的,所以只能躺着等微信改。以前貌似也这样,至于应用号是不是做的更好了一点,就不得而知了。
C.自动化能不能做,不知道最终微信这套内容下来的体系是怎么样的,是标准hybird还是自己再封装的。工具是不是能有效的识别到内部的对象,或者微信会不会给一个自己的自动化体系?
ps.貌似以后是css定位的天下了,id没用了,xpath估计也危险了。
微信小程序是一个平台,对于开发人员来说缩短了开发周期,降低了开发难度(APP开发又要失业一堆人了),而对于测试来说,UI和基本交互可能出现的问题会进一步减少,对技术测试(接口,性能)的要求会进一步提升,甚至在调试工具上可能也会越来越多的要求测试介入。
在这点上有没有能力拿到AppID和Appsecert可能就是普通测试和高级测试的关键区别吧。

内容转载自公众号

云层天咨
云层天咨
了解更多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 拉代码

git clone 。。 拉取代码master git clone -b 分支名 。。。 拉取分支名 git——更新分支、提交代码、切换分支、合并分支 还是直接贴教程吧:https://git-scm.com/book/zh/v2 如何把本地idea上的项目上传到github上:https://www.cnblogs.com/…

javaweb学习总结(二十四)——jsp传统标签开发

转载自 javaweb学习总结(二十四)——jsp传统标签开发一、标签技术的API 1.1、标签技术的API类继承关系二、标签API简单介绍 2.1、JspTag接口JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属性和方法。JspTag接口有Tag…

二级导航 sql php,帝国cms栏目导航调用之SQL语句调用一级栏目和二级栏目的方法...

帝国cms调用一级栏目及下面的二级栏目调用方法如下&#xff1a;SQL语句<?php $ecms_bq_sqlsys_ReturnEcmsLoopBq("select * from [!db.pre!]enewsclass where bclassid0 order by myorder limit 6",14,24,0);$bqno0;while($bqr$empire->fetch($ecms_bq_sql)){…

Java开发利器:IntelliJ IDEA的安装、配置与使用

1.尚硅谷-IDEA-IntelliJ IDEA的介绍和优势 2.尚硅谷-IDEA-版本介绍与安装前的准备 3.尚硅谷-IDEA-IDEA的卸载 4.尚硅谷-IDEA-IDEA的安装 5.尚硅谷-IDEA-安装目录和设置目录结构的说明 6.尚硅谷-IDEA-启动IDEA并执行HelloWorld 7.尚硅谷-IDEA-Module的使用 8.尚硅谷-IDEA…

开发者的利器:Docker 理解与使用

困扰写代码的机器难免会被我们安装上各种各样的开发工具、语言运行环境和引用库等一大堆的东西&#xff0c;长久以来不仅机器乱七八糟&#xff0c;而且有些相同的软件还有可能会安装不同的版本&#xff0c;这样又会导致一个项目正常运行了&#xff0c;却不小心破坏了另一个项目…

php环境搭建sqlserver,ThinkPHP5.0/5.1对接SQLServer数据库(宝塔环境)

SQLServer实际上是mssql&#xff0c;想要使用thinkphp的Db对象操作数据库前必须要在服务器上安装对应的扩展。宝塔面板的PHP安装路径为/www/server/php/ 且支持多个PHP版本共存&#xff0c;所以安装PHP扩展的方法与网上那些示例略有不同。下面是 PHP7.2 安装 pdo_sqlsrv5.6.0 扩…

<c:set>标签

转载自 <c:set> 标签 JSP 标准标签库 <c:set>标签用于设置变量值和对象属性。 <c:set>标签就是<jsp:setProperty>行为标签的孪生兄弟。 这个标签之所以很有用呢&#xff0c;是因为它会计算表达式的值&#xff0c;然后使用计算结果来设置 JavaBean 对…

layUI 日期组件单独使用 并且放大

日期类型 选择 layuI 的date 类型单独使用 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>layDate快速使用</title><link rel"stylesheet" href"/layui/css/layui.css" media"all…

Opserver开源的服务器监控系统(ASP.NET)

Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET&#xff08;MVC&#xff09;应用程序&#xff0c;无需任何复杂的应用配置&#xff0c;入门很快。下载地址&#xff1a;https://github.com/opserver/Opserver。据说&#xff0c;国内腾讯公司内部也…

jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结

转载自 jsp页面中JSTL/EL标签引用java后台静态static字段的方法总结为什么使用该功能&#xff1f;项目中的每个页面都包含产品名称、Logo、版本等信息&#xff0c;我希望修改一处&#xff0c;其它所有的全部跟着变。 有同学会说那就都引用一个页面“”就Ok了&#xff1b;但是…

c 管理信息系统mysql,输入数据并输出信息的系统都称为()。A、信息系统B、数据库系统C、事务处理系统D、管理信息系统...

关于葡萄糖重吸收的叙述&#xff0c;错误的是()。A.只有近球小管可以重吸收B.与Na&#xff0b;的重吸收相耦联C.是一种主肌力评定时错误的做法是A、应使患者配合B、患者应适当去除衣物C、应检查涉及的所有关节D、应增加协同当使用竹笆脚手板时&#xff0c;纵向水平杆与横向水平…

一位跨平台开发者的自白

Andreia Gaita[1] 在 OSCON 开源大会上发表了一个题为跨平台开发者的自白[2]的演讲。她长期从事于开源工作&#xff0c;并且为Mono[3] 工程&#xff08;LCTT 译注&#xff1a;一个致力于开创 .NET 在 Linux 上使用的开源工程&#xff09;做着贡献&#xff0c;主要以 C#/C 开发。…

JS (intermediate value).Format is not a function问题解决

JS (intermediate value).Format is not a function问题解决 前言 最近项目遇到一个问题&#xff0c;就是在javascript中使用new Date().Format("YYYY-mm-dd")的时候&#xff0c;会出现报错现象&#xff0c;直接导致界面无法正常显示。下面为大家解答一下。 问题详情…

java程序大笨钟怎么打,L1-018.大笨鍾(Java)PAT團體程序設計天梯賽-練習集

微博上有個自稱“大笨鍾V”的家伙&#xff0c;每天敲鍾催促碼農們愛惜身體早點睡覺。不過由於笨鍾自己作息也不是很規律&#xff0c;所以敲鍾並不定時。一般敲鍾的點數是根據敲鍾時間而定的&#xff0c;如果正好在某個整點敲&#xff0c;那么“當”數就等於那個整點數&#xff…

JSP JavaBean

转载自 JSP JavaBeanJSP JavaBean JavaBean是特殊的Java类&#xff0c;使用J ava语言书写&#xff0c;并且遵守JavaBean API规范。 接下来给出的是JavaBean与其它Java类相比而言独一无二的特征&#xff1a; 提供一个默认的无参构造函数。需要被序列化并且实现了Serializable接…

layui 单独使用日期组件

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>layDate快速使用</title><link rel"stylesheet" href"/layui/css/layui.css" media"all"><style type"text/css"…

JSP中的EL表达式详细介绍

转载自 JSP中的EL表达式详细介绍一、JSP EL语言定义EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能。脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素。它们通常用于对象操作以及执行那些影响所生成内容的计算。JSP 2.0 将 EL 表达式添加为一种…

php如何直接使用iview,iview安装使用

iView 是一套基于 Vue.js 的开源 UI 组件库&#xff0c;主要服务于 PC 界面的中后台产品。安装cd 项目cnpm install iview -S在项目中引入iview 在入口文件main.js中配置import iView from iviewimport iview/dist/styles/iview.cssVue.use(iView)官网示例{{ message }}export …

想获得腾讯发行机会?来“腾讯GAD•游戏创新大赛”

世界上最快乐的事&#xff0c;莫过于为理想而奋斗。正是源于心中对游戏的情怀和梦想&#xff0c;无数游戏人走上了游戏开发的道路。这条路&#xff0c;或迷茫、或坚定、或痛苦、或喜悦&#xff0c;但只要拥有理想与热情&#xff0c;便是航行的舵和帆。 腾讯GAD游戏开发者平台&a…

oxyen eclipse 启动 报错 se启动提示javaw.exe in your current PATH、No java virtual machine

eclipse启动提示javaw.exe in your current PATH、No java virtual machine 另外&#xff0c;也可修改eclipse.ini 文件&#xff0c;在最前面加上下面两行内容&#xff1a; -vm D:/java/jdk1.6.0_10/bin/javaw.exe *******************************************************…