怎么样测试微信小程序

2020-11-05 19:47发布

5条回答
小猪仔
1楼 · 2020-11-06 09:49.采纳回答

小程序的架构

      小程序分为两个主要部分:view模块和service模块。View模块负责UI展示,它由wxml和wxss转换后的代码以及微信提供的辅助模块组成。一个view模块对应一个webview组件,小程序支持多个view存在,view模块通过微信jsbridge对象来跟后台通信。

小程序的限制和对测试的影响
目前小程序在UI、设计、样式、页面跳转、消息大小等都有自己的限制,具体的限制可以查询如下链接:https://github.com/iamxwk/Code-wiki/issues/18

上面的限制对测试来说主要是以下几个方面

1 数量限制
小程序一个应用只能同时打开5个页面,在规划新需求的时候一般会考虑到5个页面的限制,但是需求迭代越来越多跳转关系比较复杂的时候很容易忽略5个页面的限制,这个时候如果跳转逻辑超过5个页面会出现跳转打不开的情况。因此在需求评审的时候就应该把小程序的跳转关系有个整体的梳理,在新加页面处理跳转关系的时候能够一目了然不会出现超过5层限制的问题。这里推荐使用流程图的形式来展现页面的跳转关系。

2 大小限制
小程序源码打包后的大小限制为1M,因此源码中的图片和icon和数据等都需要压缩。
小程序的测试4大方面
小程序虽是微信推出的新形态的产品,但是在测试思路上跟其他的客户端测试在模式上也有类似之处。小程序的测试也可以主要分为4个方面,即功能测试、兼容性测试、性能测试、后台接口测试。对于安全性测试由于小程序集成在微信客户端内,相比于传统的网页来说安全性能够更有保障。只要在后台接口测试上保证数据的安全性,客户端的安全性由微信app来替我们保证。

1 功能测试
功能测试跟传统的web端的功能测试类似,这里不再赘述。用例设计方法等跟需求相关性较大。

2 兼容性测试
包括操作系统兼容性,屏幕兼容性,微信兼容性

操作系统兼容性:为什么小程序会出现操作系统兼容性,因为Android和ios系统上小程序的JavaScript脚本的执行环境不同。官方文档中有说明,在开发工具上,小程序的js代码时运行在nwjs中,在ios上是运行在JavaScriptCore中,在Android上是通过X5JSCore来解析的。正因为脚本执行的环境不同,因此在开发工具上正常的小程序有可能在ios和Android系统上不符合预期。

屏幕兼容性测试:微信小程序定义了一个新的尺寸单位rpx(responsive pixel)可以适配不同尺寸的屏幕,在页面上定义对象的单位是rpx就可以在不同的屏幕上适配。因此对测试来说不需要测试各种屏幕下的页面显示。但是,在实际测试的过程中仍然存在屏幕适配的时候出现像素问题,尤其是1rpx的像素经常在iphone7p上出现断线的情况。因此需要在测试过程中关注1rpx像素的显示。

微信兼容性:与微信版本的兼容性问题主要体现在小程序api库的版本上,有些比较老的版本的小程序api库不支持新版api,因此会出现兼容性问题。所以测试微信版本的兼容性之前要先确定小程序使用的库版本在哪些微信版本号上支持。

3 性能测试
这里的性能测试考虑的是客户端的性能,服务器的性能则按照传统的服务器性能测试方案即可。小程序的客户端性能和网页的性能测试非常类似,性能的常用指标也大致相同。包括页面的白屏时间,首屏时间,资源占用,页面渲染时间,帧率等等。

小程序的开发工具提供了手动查看性能的窗口,只要在小程序开发版中打开性能窗口即可看到页面的性能数据。

但是这个性能窗口的问题是只能手动获取数据,无法自动记录全部页面的数据,因此适用于定位性能问题而不适用于发布前的性能测试。所以性能测试可以考虑性能打点上报的方式进行性能分析,上报时区分测试环境和运营环境。发布前先在测试环境分析各个页面的耗时,及时发现页面的性能问题。

4 后台接口测试

小程序的后台接口跟其他的客户端后台接口测试类似,直接按照常规的后台测试来开展就可以。
小程序的自动化测试
小程序的自动化测试是个必然的趋势,自动化测试可以提高回归效率可以实现监控,是一种重要的辅助测试手段。但是由于小程序集成在微信app内部,不像其他页面比较容易抓包和解析因此这是小程序自动化测试的难点。目前有很多自动化测试的工具和框架试图解决这个限制提供小程序自动化测试的解决方案,比如有用wept+puppeteer来进行UI小程序UI自动化测试,但是这种方式对于测试环境和正式环境需要特殊处理,某些api也是不支持的。

茄子酱
2楼 · 2020-11-06 09:47

微信小程序测试的策略和注意事项
一、测试前准备(环境搭建)
1.前端页面
微信Web开发者工具安装、授权测试用的微信号可预览和调试小程序…
可参考此文: 微信Web开发者工具-下载、安装和使用图解

2.管理后台
配置内网测试服务器环境,通过PC端Web站点管理小程序前端的输出内容,可从开发人员获取管理账号进行测试

二、测试范围
1.权限测试
需要检查以下几种情况下微信用户访问的权限

1)未授权微信登录小程序
未授权时,一般使用一些业务功能的时候,都会弹出提醒:先授权再操作对应功能。or在提交数据到后台的时候,会提示补充相关身份信息才能提交成功

2)已授权微信登录小程序
授权微信访问小程序,意味着自己的微信账号可被小程序管理方所获取,自动以微信的身份行使业务操作权限,比如咨询、支付、数据查询等

3)同一微信号在不同手机端登录授权查看数据权限
同一微信号在不同手机微信端授权登录同一小程序之后,所能查看的数据和操作的权限都应该是同步一致的

2.功能测试
1)按功能模块测试
根据设计好的各个大类功能模块划分,然后再逐级细化,覆盖到每个功能尽可能全面的测试点

2)按业务流程测试
小程序的业务,比如咨询、支付、播放、查询、下载。把各个功能点串联起来形成完整的业务流程来检查;同一个业务,可能有不能的路径来实现,每个路径都需要覆盖检查

3)按数据流向测试
根据数据从某一端操作输入和输出流向,设计基于数据流的测试用例,输出的数据也可能成为另外一端的输入,检查输入的数据是否按照代码逻辑执行正确的输出,是否数据发生异常(无法输入;有输入却无任何输出;输出不正确;多余的输出其他信息…)

4)同一功能不同的入口有效性的检查
小程序中在首页、列表页、详细页、其他的业务功能相关页面,都有可能存在同一个功能的入口,如付费咨询、免费咨询业务中,可以直接从首页进入付费咨询入口,也可以通过免费咨询入口再切换到付费咨询入口。每一个入口路径都需要覆盖检查

5)交互性检查
一般而言,产生数据和功能交互变化的情况主要有这几个分类:前台<–>前台、后台<–>后台、前台<–>后台。前台从A1页面提交的数据,可能需要在前台A2页面查看到,也会在对应后台的B页面查到记录;后台B1页面修改or添加的数据,对应到前台的A页面产生交互变化,后台本身的不同页面之间也可能存在同一个数据的输出值

3.版本配置测试
有时候小程序一次性做了几套不相同的模板,在前端程序代码中修改配置参数,保存后重新编译,即可从一个版本切换到另一版本,同时也需要在管理后台作相应的切换,以保证前端进行数据调用

对于非公用的部分:不同版本直接的切换,需要保证彼此的功能模块和数据独立性不受干扰影响,即不同版本的管理后台所添加的数据只应该调用到各自对应模板的前台小程序中,不同版本的小程序从前台提交的数据也只会提交到各自管理后台,不应该有交差重叠

大冬瓜
3楼 · 2020-11-18 18:37

用测试工具测试

小凡仔
4楼 · 2020-11-24 17:58

前端页面,后台程序功能,性能,数据等进行测试

第一bai种方式:线下扫码

二维码是获取小程序最基本的方式。在微信中打开扫一扫,扫描线下二维码即可进入小程序。

第二种方式:微信搜索

在微信客户端首页的搜索窗口,你可以通过搜索获取一个小程序。

第三种方式:公众号关联

同一主体的小程序和公众号可以进行关联,并支持互相跳转。该功能需要经开发者自主设置后使用。

一个公众号可绑定五个小程序,通过该公众号可查看并进入所绑的小程序;

一个小程序只能被一个公众号绑定,通过该小程序可以查看并进入所关联的公众号。

第四种方式:好友推荐

小程序不支持在微信朋友圈进行发布分享。

如果你发现一个不错的小程序,可以将这个小程序,或者它的某一个页面转发给微信好友,或者转发到微信群聊中。

第五种方式:历史记录查找

当你使用过某个小程序后,它会出现在你的微信客户端“发现-小程序”的列表里。

想要再次使用它时,只需通过列表里的历史记录就可以进入。

在“发现-小程序”中,也可以通过搜索进入小程序。


相关问题推荐

  • 回答 157

    虽然从事开发行业的女生越来越多,但女生的比例还是远比不上男生。软件测试的男女生比例则基本相当,软件测试要求细心、耐心,大部分女生也是比较适合学的。而且软件测试课程分为手工测试和自动化测试,手工测试分为功能测试、性能测试、接口测试。自动化测试...

  • 回答 121

    需要。很多人当初抱着测试不需要懂代码,才选择了这个行业,这个就要看对自己的职业定位了,是止步于月薪过万就可以了,还是往20k、30k去突破,如果这样的话,是肯定要会接口、会自动化,就必然要涉及到代码。如果真的看不懂代码,实际的测试后期的工作会出现...

  • 回答 91

    在我看来游戏开发挺难的,尤其像手游一类的还有网游,里面有很多的程序代码而且伤神又费力,不过也有女生在这方面做的很好的,如果你感兴趣,非常想学,可以试试

  • 回答 80

    软件测试专业现在很火热,很缺少人才,25岁学软件测试能学会,就业薪资也高,工作也相对轻松

  • 回答 11
    已采纳

    测试类型有:功能测试,性能测试,界面测试。功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用...

  • 回答 15
    已采纳

    这个其实和接口测试的场景密不可分的,比如说:外部接口测试:    必须先接口测试通过了,才能执行功能测试子系统或者各个模块之间的联调测试:    必须各子系统后台代码完成,并提供接口才可以完成测试,一般来说都要求各子系统功能测试通过后再进行...

  • 回答 6
    已采纳

    这个是会因为公司的架构不同而不同的,并不是固定的,但是一般是会有专门的测试部门,或者叫质量保证部,也有可能是叫别的名字。

  • 回答 43
    已采纳

    移动端测试,包括App兼容性测dao试,7*24小时稳定性测试,功耗性能测试,UI测试,交互测试等,课程主要学习的内容有:1、功能测试主要包括计算机基础、软件测试核心理论、Linux、数据库,学习目标是掌握软件测试核心理论,结合Linux、数据库等可实现移动端、w...

  • 回答 1

    标题  1. 首先要做一个标题党(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找  3. 缺陷的标题一定要描述在什么情况下发生了什么问...

  • 回答 1

    1、 缺陷报告可以记录缺陷2、可以对缺陷进行跟踪管理3、可以对缺陷报告进行分类 总结 统计

  • 回答 1

    1、缺陷编号(Defect ID),提交BUG的顺序。2、缺陷标题(summary),简明扼要的说明一下这个BUG。3、缺陷的发现者(DetectedBy) ,一般是自己。4、发现缺陷的日期(Detected on date),一般是当天。5、缺陷所属的模块(subject), 在测试哪个模块的时候发现的BUG...

  • 回答 1

    缺陷标题好的缺陷标题需要让相关人员一目了然,一般建议的格式是条件+失败。缺陷类型缺陷类型也是根据具体的项目而定的。但一般情况下分为功能、界面、建议。重现步骤重现步骤的编写规则可以参考测试用例中的操作步骤 ,一定要足够详细、说明清楚问题的操作顺...

  • 回答 1

    工具:NoSQLUnitJsTestDriverQTRunnerVenusFluintBuster.JSSQLUnitECUTQTestlibUnitilsgreatestDbUnitAbbotGoogleTest框架:JUnitMoqJSCaptureMockCUnitPyUnitCppUTestCppUnitzCUTcipra

  • 回答 1

    JunitTestNGGoogleTestpytestunittestJmockitJaCoCogcov、lcov、gcovrCoverage.pyEvoSuiteDiffblue Cover

  • 回答 1

      React Hooks测试库( Testing Library)是一个简单而完整的React Hooks测试工具。  React Hooks测试库让用户可以为React钩子创建简单的测试工具,自定义钩子的输入和检索输出,以处理在功能组件体内运行的情况。  使用React Hooks,用户不必为了测试而去担...

  • 回答 1

    1、单元测试注重代码逻辑,接口测试注重业务逻辑;2、单元测试的粒度最小,是测试最小独立的单元模块(不依赖其他模块);接口测试不是,会覆盖很多;3、单元测试是白盒测试,接口测试是黑盒测试;4、单元测试关注的是代码的实现和逻辑,测试范围较小,保证实...

没有解决我的问题,去提问