一、单元测试
单元测试是对小程序不同模块、函数等独立单元进行测试,保证其有良好的功能和接口,可以提高测试的效率,并可及早发现代码的错误。
1.测试框架
小程序的测试框架官方提供了一套名为「mina」的测试框架。mina是一款轻量、易用、灵活的小程序测试框架。mina提供了测试工具包(如WXML SnapshotTester)和测试用例BLI(编写方式形同HTML),且mina测试框架支持持续集成。使用mina可方便的实现指定目标代码文件的覆盖。
//测试框架安装 npm install mina-test-framework -D
2.测试实例
以计算器小程序为例进行单元测试,测试实例包括:输入数字、加法计算、减法计算
//加法计算测试 var calc=require('../../utils/calc.js') test('add',function(){ expect(cal.add(1,2)).toBe(3) expect(cal.add(-1,2)).toBe(1) }) //减法计算测试 test('minus',function(){ expect(cal.minus(1,2)).toBe(-1) expect(cal.minus(-1,2)).toBe(-3) })
二、性能测试
性能测试的主要目的是衡量小程序在特定条件下的性能,并发现可能的瓶颈。性能测试可以在小程序进行开发的各个阶段进行,也能恰当地掌握不同平台的性能信息,为开发者提供数据支持,从而优化小程序。
1.测试平台
小程序性能测试需要依赖多个测试平台。目前市面上常用的测试平台包括Top App、Rabbit Preload等。
2.测试指标
对于小程序性能测试来说,可以考虑四个方面的指标处理:
性能测试指标1:响应时间,即完成任务的平均时间。小程序响应时间受网络状况、服务器资源、客户端硬件等因素影响。
性能测试指标2:并发能力,即同时支持的请求数量。虽然每个客户每秒发送的请求数量通常靠近或接近1秒,但是很多小程序都需要支持大量的并发请求。
性能测试指标3:稳定性,即小程序在不同时段和场景下的表现。包括短时间的高并发和持续时间较长的压力测试,以及小程序的过载估计,稳定性的测试反映出了小程序系统级能力。
性能测试指标4:吞吐量,小程序系统能够承载的最大请求数量。
三、界面测试
界面测试是小程序开发的重要测试环节,小程序的良好交互体验需要优秀的界面。在界面测试中,需要考虑以下几个方面。
1.UI自动化测试工具
目前市场上较为成熟的小程序UI自动化工具仍较少,国内常用的UI自动化工具包括「UIAutomator」、「Appium」、「Webdriver.io」等。
2.编写测试用例
为保证测试流程的准确性和稳定性,在编写测试用例时需要注意以下几个方面:
测试对象: 小程序的每个页面对应一个wxml模板文件和wxml页面文件。在编写测试用例的时候一定要注意测试对象。
执行时序: 针对交互事件进行测试,通常是UI元素组件的点击或者滑动。
测试数据: 通过模拟输入数据进行测试,比如输入一组符合格式的用户名卡号等。
四、安全测试
安全测试是小程序开发的重要测试环节,小程序涉及到用户的隐私、财产等重要信息,在开发之初,就应该考虑安全性及其测试。
1.安全测试类型
渗透测试: 渗透测试通过对小程序进行模拟攻击、扫描等,发现可能的安全漏洞。
代码审查: 对小程序代码进行安全检查,抖控制程序中的业务逻辑与安全策略的一致性、安全配置的正确性等。
加固处理: 对小程序的漏洞进行修补。
//常见小程序的漏洞处理 function escape(str){ str.replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'") .replace(/`/g, "`") return str }
2.重要接口测试
检测小程序的重要接口是否可正常使用,如登陆API是否可正常使用。
//微信小程序接口测试例子 import * as APIs from '../../../api/api' import fetchMock from 'fetch-mock' fetchMock.mock(APIs.MOCK_API_URL + '/wechat/hotel', 'POST', { data: true, code: 200, message: '查询成功' }) APIs.searchHotel('xxx', 'xxxx').then(resp => { expect(resp.data).toBe(true) })
原创文章,作者:XTSGB,如若转载,请注明出处:https://www.506064.com/n/333162.html