npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

smartapp-automator

v3.0.33

Published

###### [API 文档](./docs/api/Menu.md)

Downloads

32

Readme

smartapp-automator

API 文档

smartapp-automator SDK 是为开发者提供的一套通过 Node.js 脚本操控小程序的方案,从而实现小程序自动化测试的目的。

快速开始

运行环境配置

请根据你的电脑类型,按文档配置你的运行环境:Mac 电脑运行环境配置

安装

请在你的工程目录里运行以下命令,安装 smartapp-automator SDK:

$ npm i smartapp-automator --save

用法

smartapp-automator 对于曾经使用过其它 UI 测试框架的同学来说,会觉得非常的熟悉。

你可以创建一个设备实例打开小程序,然后使用 smartapp-automatorAPI 操控它。

示例 - 用 Android 设备跳转 CTS 小程序首页并进行截屏:

我们将该脚本命名为 screenshot.js

const automator = require('smartapp-automator');

automator.launch({
    deviceType: 'android', // 要驱动的真机设备类型,这里为 Android 手机
    deviceId: '37bf1128' // 要驱动的真机设备 ID,Android 手机的 serial 号,可通过 `adb devices` 获取
}).then(async device => {
    let smartapp await device.newSmartapp(
        'baidu', // 驱动运行小程序的宿主 APP 的代号,`baidu` 为百度 APP 的代号
        'VPKGrAKy7fQfAG9scxLPQV10OeGErWmp_dev1' // 要驱动运行的小程序的 AppKey,可通过开发者工具预览打包功能获取
    );
    await smartapp.goto(); // 跳转小程序首页
    await smartapp.screenshot(); // 截屏
    await device.close(); // 关闭设备实例
});

资源文件

测试

# 仅支持使用 Mac 电脑和 Android 设备运行测试
$ npm run test

如何贡献

  • 提交 pr 的时候,新增的每一个能力,都需要在 ./docs 下完善文档,否则不予合入

讨论

Q: 谁在维护 smartapp-automator ?

百度小程序测试中台团队在维护着这个 SDK。

Q: 在执行输入操作的时候,突然杀死进程,即使拔除 usb 线,iOS 仍然会以 1 字/秒的速度键入字符,怎么解决?

这个「灵魂输入事件」,我觉得,可以通过捕获杀死进程事件,强制等待 input 操作结束,来稍加避免该情况发生。 发生该情况的时候,也只能等待键入完成/重启手机了。

Q: Android 在运行一段时间后(5-10 天),atx-agent 会频繁挂掉,怎么解决?

Android 设备上的进程死掉,一般是因为 OOM,Android 系统对内存的使用几无限制,当内存被各类 APP 占用后,低优先级的进程就会被优先干掉。 一个不成熟的建议:删除跑任务设备上的其它 APP。

Q: DOM 中 attribute 和 property 是啥区别?

attribute 是由 HTML 定义的,出现在 HTML 标签内的属性都是 attribute,总是 string 类型。 property 是 js 的 DOM 对象的属性,即 document.getElementById('go').xxx 的 xxx,xxx 可以是任意类型。 但注意,w3c 标准定义的 attribute 和 property 是 1:1 对应关系,如:id, class(对的 className,因为 js 里 class 是关键字), title 等。 一般,property/attribute 改变会改变对应的 attribute/property,但不一般情况如 input 的 value 改变其 property 的时候,attribute 不变。 一般,我们使用 property,因为比较快。

Q: iOS wda 仅支持端控件元素输入,能否支持小程序元素输入

再看看。