名词解释
AliOS Things: 阿里云智能IoT团队自研的物联网操作系统
HaaS:全称是Hardware as a Service,阿里云智能IoT团队基于AliOS Things系统推出的硬件即服务
HaaS UI:全称是Hardware as a Service User Interface,是源自AliOS Things操作系统上的一套应用&图形解决方案,支持C/C++和 JS两种开发语言
1、HaaS UI应用创建
AliOS Things团队为了让开发者能够快速地进行HaaS UI应用开发,特提供了一个demo应用,开发者只要根据《HaaS UI小程序解决方案基础教学之一: 快速开始》,就能够快速搭建应用工程,详见https://blog.csdn.net/HaaSTech/article/details/112426137。
2、HaaS UI自动化测试架构
分层介绍:
1、硬件设备:HaaS UI目前支持HAAS100和MTK单板,未来为支持更多的AIOT带屏终端设备;为了解决用户手上没有硬件的场景,AOS团队特开发了基于MAC和Windows模拟器,让用户只需关注上层应用的开发。
2、OS:HaaS UI是运行在AliOS Things操作系统上的一套应用&图形解决方案。
3、HaaS UI应用框架:包括轻应用框架、轻应用API、容器、HaaS UI渲染框架和动态卡片前端框架。
4、HaaS UI自动化测试框架:AOS对外提供了JS API和组件的能力,同时开放了JS API和组件的接口,可以由用户自定义,因此,提供了接口测试的自动化测试框架和UI自动化测试的自动化测试框架。目前实现了接口测试的自动化测试框架。
5、测试类型:覆盖接口测试、功能测试、场景测试、稳定性测试和性能测试。
3、API
3.1、内置API
HaaS UI目前内置了一些基本的JSAPI供开发者使用,这些JSAPI提供与应用生命周期、页面导航、数据存储、包管理、网络请求等强关联的接口,接口宿主为框架提供的基础类($falcon,App,Page等)。
接口宿主 | JSAPI | 调用方法 | 接口功能 |
$falcon | navTo | $falcon.navTo(target:String, options:Object) | 应用、页面管理 |
closeApp | $falcon.closeApp() | ||
closePageByName | $falcon.closePageByName(pageName:String) | ||
closePageById | $falcon.closePageById(pageId:String) | ||
getPage | $falcon.getPage(component:Component) | ||
app | finish | $falcon.$app.finish() | |
page | setRootComponent | this.setRootComponent(component:Component) // this指针属于继承$falcon.Page的类 | |
finish | this.finish() // this指针属于继承$falcon.Page的类 | ||
package | getInstalledAppInfo | $falcon.jsapi.pm.getInstalledAppInfo | 应用包管理 |
packageInstalled | $falcon.jsapi.pm.on("packageInstalled", param => {}) $falcon.jsapi.pm.off("packageInstalled", param => {}) | ||
packageUninstalled | $falcon.jsapi.pm.on("packageUninstalled", param => {}) $falcon.jsapi.pm.off("packageUninstalled", param => {}) | ||
storage | setStorage | $falcon.jsapi.storage.setStorage({key: 'key', data: 'data'}) | 数据存储 |
getStorage | $falcon.jsapi.storage.getStorage({key: 'key'}) | ||
removeStorage | $falcon.jsapi.storage.removeStorage({key: 'key'}) | ||
clearStorage | $falcon.jsapi.storage.clearStorage() | ||
net | http.request | $falcon.jsapi.http.request(options:Object) | 网络请求 |
3.2、自定义API
HaaS UI内置的JSAPI为虽然JS提供了调用底层系统能力的接口,例如数据存储、网络管理、文件操作等,但是这些内置的JSAPI不能满足用户所有的开发需求。HaaS UI提供了扩展JSAPI的方法,用户可以根据项目需求和平台能力实现不同的扩展,以满足不同的功能需要。用户如果想要自定义一些JSAPI,详细参考https://blog.csdn.net/HaaSTech/article/details/112848290。
4、接口自动化测试
4.1、创建自动化测试文件
根据第一章节创建HaaS UI应用,然后在对应目录下新增自动化测试目录及文件,详细操作参考第一章节。
4.2、 编写测试用例
在apitest.vue文件的methods中增加测试用例,例:
4.3、添加测试用例
在apitest.vue文件中的created中添加对应的测试用例
4.4、编译运行
- npm run build命令生成小程序包
- 下载模拟器
Mac模拟器:下载地址
Windows模拟器:下载地址
- 基于模拟器运行
运行模拟器需要先cd到模拟器所在路径,再执行./bin/appx,(因为模拟器是根据相对路径来加载资源目录的)
运行方法:
- 1、./bin/appx (运行模拟器预置的应用包)
- 2、./bin/appx {appPath} {page} (传入应用构建出来的目录绝对路径来运行,page可选)
例如:./bin/appx /Users/Documents/code/testproject/.falcon_ test
运行结果如下:
5、相关学习文章
1.HaaS UI 免费开源的轻量级IoT小程序解决方案 https://blog.csdn.net/HaaSTech/article/details/112306194
2.HaaS UI小程序解决方案基础教学之一: 快速开始 https://blog.csdn.net/HaaSTech/article/details/112306194
3.HaaS UI小程序解决方案基础教学之二: 搭建第一个UI页面
https://blog.csdn.net/HaaSTech/article/details/112674174
4.HaaS UI小程序解决方案基础教学之三: JSAPI页面导航
https://blog.csdn.net/HaaSTech/article/details/112681511
5.HaaS UI小程序解决方案基础教学之四: JSAPI数据存储
https://blog.csdn.net/HaaSTech/article/details/112766128
6.HaaS UI小程序解决方案基础教学之五: JSAPI文件管理
https://blog.csdn.net/HaaSTech/article/details/112766128
开发者技术支持
如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号
更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/