@JinZhu 这样子之后 除了可以 DDMS 无法查看设备进程 还可以解锁哪些姿势?
@yinquanwang 能否制作个 docker 部署
你可以看看这个 http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=486788 前几天升级内核 116 之后,注销然后切换到了 gnome 环境,然后再重启 进入 unity 桌面环境后,就这个德性了 没 无启动栏 launch,无 menu bar 只有桌面背景. 实际是 unity 的事.
我重启后 进入上一内核 112 是加载界面正常的 ,那就说明 116 内核还有救,我就登录 116 内核 选择 recory 模式进命令行,然后操作那些命令 去卸载 unity 然后重装 unity7
如果是黑屏 或 读进度后 一直黑进不去的话 看你的界面是 unity 还是 gnome 一般默认用的都是 unity7 桌面环境,
一般都是 unity7 的问题, 重启选择那个第二个 recory 模式 进入 tty 命令行,去卸载 然后重装 unity7.
@debugtalk
api
suite
testcases
这么分,起名起的脑仁子疼. 能不能推荐或整理个 命名原则规范.....
更新后 发现
是 ape.strings 对应现在的 max.strings
ape.xpath.actions 对应现在的 max.xpath.actions
还多了一个 max.config 是配置什么的
cmd@TR:~/workspace/git/Maxim$ cat max.config
max.startAfterNSecondsofsleep = 6000
max.wakeupAfterNSecondsofsleep = 4000
我觉的 人工智能测试 可以搞测试,不过要看什么样的企业. 给多少投入,定了人工智能测试要到什么目标.
这种企业 100 家 只有 2-3 家可以符合这种规模和体量还有 money 的吧. 说 BAT 搞我信.
我们这种二线 三线小厂 还是业务测试为王, 有点盈利上规模了,才会上些接口自动化 和 UI 自动化 和持续集成.
做到以上两点 业务测试 和 有给配个 2-3 个人 做接口自动化 和 UI 自动化 和持续集成 就已经算测试行业内不错的企业了.
做好以上两点的企业,我觉的 可以搞搞 组合 Fuzzing 模糊测试,这东西 还和以上两点 关系密切些,对组合好用例和精简用例 有很大帮助.
最近 也接触了一些 Fuzzing 模糊测试开源工具,有 google oss-fuzz 的 有微软的 neural fuzzing
和比较有名的 Hypothesis
基于 python 学习简单 底层用的 uiautomator2 python 版( 既是晓聪根据 google uiautomator2 改的 python 版)
制作了个 atx-agent 安装到手机端(既是一个 u2 server 类似 appium server 的角色)
处理速度快。 同功能脚本 手机 你可以测试用 appium 和 u2 分别做同样的用例 来比较
是啊,快快弄好 httprunner 有人扒了 Locust https://testerhome.com/topics/11853 的新衣,性能请求不足,您老怎么看。
1 是否支持同步, HITCHHIKER_SYNC_ONOFF 同步什么内容,和谁同步? docker 镜像里 是否开启同步了? 怎么查 docker 镜像中配置的环境变量?
2 "api": "http://ip:port/api/", // API 接口,调试用, 环境变量使用上面的 这个具体怎么用 后边接哪些 去哪查?
3 "safeVM": false, // 是否使用安全脚本,如 require HITCHHIKER_SAFE_VM 安全具体怎么个安全法?
4 "enableUpload": true, // 是否支持上传脚本和数据, HITCHHIKER_ENABLE_UPLOAD 同问题 1 docker 镜像里 是否开启了? 怎么查 docker 镜像中配置的环境变量?
其他问题都类似, 就是怎么安装 docker 镜像前,如何查当前配置的 Hitchhiker 环境变量。。。。
@brookshi appconfig.json 也就是 http://doc.hitchhiker-api.com/cn/installation/configuration.html
里边注释的这些 都可以写进 docker-compose.yml 中对应各节配置的 environment: 的吧?
我都提取了出来,您看下 是不是下边的格式或支持的都可以写到 docker-compose.yml
有几个问题:
1 都可以改吗? 哪些不推荐更改 使用默认?
2 有些使用效果不明,能更详细说明吗?
3 这些参数支持,docker 安装部署后,热修改更新吗?会立即生效吗? 还是初始化后不可改?
hitchhiker:
environment:
- HITCHHIKER_APP_HOST=http://localhost:6666/ # 修改为本机ip及端
- HITCHHIKER_APP_LANG # 语言,目前只对邮件内容起作用
- HITCHHIKER_SYNC_ONOFF # 是否支持同步
- HITCHHIKER_SYNC_INTERVAL # 同步间隔,单位(秒)
- HITCHHIKER_DEFAULT_HEADERS # 请求默认带的headers
- HITCHHIKER_SCRIPT_TIMEOUT # 脚本执行时间(毫秒)
- HITCHHIKER_SAFE_VM # 是否使用安全脚本
- HITCHHIKER_ENABLE_UPLOAD # 是否支持上传脚本和数据
- HITCHHIKER_APP_INVITE_DIRECTLY # 不通过邮件验证来邀请成员
- HITCHHIKER_DB_HOST # mysql 的host
- HITCHHIKER_DB_PORT # mysql端口
- HITCHHIKER_DB_USERNAME # mysql 用户名
- HITCHHIKER_SCHEDULE_DURATION # schedule 监测时间间隔(秒)
- HITCHHIKER_SCHEDULE_STORE_UNIT # schedule 存储的单位,支持按个数存 count 和按天存: day
- HITCHHIKER_SCHEDULE_COUNT # schedule 存储的大小
- HITCHHIKER_SCHEDULE_STORE_CONTENT # schedule record response 是否存储, all表示所有都存下来, forFail表示只存失败的, none表示都不存(这会很大影响数据库大小和性能)
- HITCHHIKER_SCHEDULE_PAGESIZE # schedule record 在浏览器端显示的一页的个数
- HITCHHIKER_SCHEDULE_MAILFORFAIL # 只在失败时发邮件
- HITCHHIKER_STRESS_COUNT # 压力测试表最大长度
- HITCHHIKER_STRESS_PORT # 压力测试的端口
- HITCHHIKER_STRESS_UPDATE_INTERVAL # 压力测试实时更新时的间隔(毫秒)
- HITCHHIKER_MAIL_CUSTOM #是否需要自定义mail,可以使用 "api" 或 "smtp"
- HITCHHIKER_MAIL_API # custom为"api"时会使用这个mail接口, Hitchhiker会post {target, subject, content}到这个接口
- HITCHHIKER_MAIL_SMTP_HOST # "smtp.qq.com"
- HITCHHIKER_MAIL_SMTP_PORT
- HITCHHIKER_MAIL_SMTP_TLS # 是否需要走tls加密
- HITCHHIKER_MAIL_SMTP_USER # smtp用户名 "***@qq.com"
- HITCHHIKER_MAIL_SMTP_PASS # smtp密码
- HITCHHIKER_MAIL_SMTP_From # 发邮件的邮箱,默认空会使用user
- HITCHHIKER_MAIL_SMTP_NICKNAME # nickname昵称
- HITCHHIKER_MAIL_SMTP_RU # 证书验证不通过时是否报错
- MYSQL_ROOT_PASSWORD=hitchhiker888 # mysql密码
- MYSQL_DATABASE=hitchhiker-prod # mysql 数据库
@zyanycall
坛子里的人用 Hitchhiker 的多吗?
看了这几天有人评 Locust
https://testerhome.com/topics/11853
感觉还不如目前公司在用的 jmeter 了,一直在找替代方案.HttpRunner 也使用过,里边也有用 Locusts 做压测端.
不知道谁评测过 Hitchhiker 的压测能力和水平.@zyanycall 要不来一波啊,看看他的皇帝的新衣能被扒否?
C:\Users\cmd>adb devices -l
List of devices attached
C:\Users\cmd>adb kill-server
C:\Users\cmd>taskkill /f /im adb.exe
成功: 已终止进程 "adb.exe",其 PID 为 10480。
成功: 已终止进程 "adb.exe",其 PID 为 2740。
成功: 已终止进程 "adb.exe",其 PID 为 14784。
成功: 已终止进程 "adb.exe",其 PID 为 10364。
请尝试以上命令 adb kill-server 或 taskkill /f /im adb.exe
哈哈。怼怼受关注,怼怼修复快。
又骗我学 Fuchsia ?
@lose
还是作者的老风格, 总把一些跑自家的东西写死,也不处理为相对获取....
这哪里是开源.....
BaseMonitor.py
if __name__ == '__main__':
# cpu_rate("2749")
pid = get_pid("com.jianshu.haruki", "DU2TAN15AJ049163")
# print(pid)
# get_flow(pid, "wifi", "DU2TAN15AJ049163")
# get_battery("DU2TAN15AJ049163")
# get_men("com.jianshu.haruki", "DU2TAN15AJ049163")
# print(get_cpu_kel())
# cpu_kel = get_cpu_kel("DU2TAN15AJ049163")
# print(cpu_rate(pid,cpu_kel,"DU2TAN15AJ049163"))
get_flow(pid, "gprs", "emulator-5554")
# print(get_flow("com.jianshu.haruki", "gprs"))
# print(get_flow("com.jianshu.haruki", "gprs"))
# print(get_flow("com.jianshu.haruki", "gprs"))
BasePickle.py
if __name__ == "__main__":
# readInfo(PATH("../info/DU2TAN15AJ049163_battery.pickle"))
# readInfo(PATH("../info/emulator-5554_fps.pickle"))
# readInfo(PATH("../info/emulator-5554_battery.pickle"))
# readInfo(PATH("../info/emulator-5554_men.pickle"))
# readInfo(PATH("../info/DU2TAN15AJ049163_men.pickle"))
# readInfo(PATH("../info/emulator-5554_flow.pickle"))
readInfo("E:\\app\\py\\monkey1\\info\\info.pickle")
# readInfo(PATH("../info/DU2TAN15AJ049163_cpu.pickle"))
BaseReport.py
if __name__ == '__main__':
workbook = xlsxwriter.Workbook('report.xlsx')
info = [{'emulator-5554': {'cpu': 'E:\\app\\py\\monkey1\\info\\emulator-5554_cpu.pickle', 'battery': 'E:\\app\\py\\monkey1\\info\\emulator-5554_battery.pickle', 'men': 'E:\\app\\py\\monkey1\\info\\emulator-5554_men.pickle', 'flow': 'E:\\app\\py\\monkey1\\info\\emulator-5554_flow.pickle', 'header': {'rom': 770300, 'kel': '2核', 'monkey_log': 'E:\\app\\py\\monkey1\\log\\55dd9a83-3337-46d5-bb1f-6f64b85be7cbmonkey.log', 'beforeBattery': 99, 'pix': '1440x810', 'time': '10秒', 'afterBattery': 99, 'phone_name': 'GT-I9500_samsung_4.4', 'net': 'gprs'}, 'fps': 'E:\\app\\py\\monkey1\\info\\emulator-5554_fps.pickle'}}, {'DU2TAN15AJ049163': {'cpu': 'E:\\app\\py\\monkey1\\info\\DU2TAN15AJ049163_cpu.pickle', 'battery': 'E:\\app\\py\\monkey1\\info\\DU2TAN15AJ049163_battery.pickle', 'men': 'E:\\app\\py\\monkey1\\info\\DU2TAN15AJ049163_men.pickle', 'flow': 'E:\\app\\py\\monkey1\\info\\DU2TAN15AJ049163_flow.pickle', 'header': {'rom': 3085452, 'kel': '8核', 'monkey_log': 'E:\\app\\py\\monkey1\\log\\732ac6cd-dd84-4818-80ea-d9b5339c6774monkey.log', 'beforeBattery': 94, 'pix': '1080x1920', 'time': '15秒', 'afterBattery': 94, 'phone_name': 'H60-L02_Huawei_4.4', 'net': 'gprs'}, 'fps': 'E:\\app\\py\\monkey1\\info\\DU2TAN15AJ049163_fps.pickle'}}]
tem = OperateReport(workbook)
tem.monitor(info)
tem.analysis(info)
tem.crash()
tem.close()
# print(len(data["cpu"]))
https://github.com/openatx/uiautomator2 是基于 google 的 uiautomator 的 python client API 实现
https://github.com/NetEaseGame/ATX 是基于图像识别的
我意思是 抽离解决方案。。。 搞那种共性问题 的通用解决方案,或者集思广益 提供方案的时候 说明是基于什么前提上下文场景的一个方案。 否则,其他人只能自己玩了一遍后 才知道适合不适合,大大增加了时间和精力成本。
atx 的 uiautomator2 同样功能 比如我之前做的 android toast 同样的功能 同样的被测 app 同样的手机。
比较下来, atx 的 u2 连接到启动 app 这块 明显比用 appium 的 u2 快,感官上就明显感到 atx 的 u2 连接秒连,而 appium server 你就看吧 日志滚啊滚啊 adb 操作啊 安装 io-appium-server 操作啊 检查这个操作啊一顿下来,10 几 20 秒过去了。。。。
嗯 是的,好多共性问题,都有不同的解决代码方案。但各个方案也许都有坑,或不适合自家项目的场景。所以希望 大神进来评估和讨论。
我现在重点看 joko 的 Auto_Analysis 和 lose 的 appium 两个项目。
Auto_Analysis 代码非常工整简洁,用的都是 py 高级写法,logging 管理用的也是看的执行过程非常的爽,感觉目录结构 lib po pulic 这些更像是一个搞过 java 项目的。
lose 测试小书童 近期更像频繁啊,star 数明显增加,目录结构命名更符合 py 目前流行的 pageobject 那种,但代码没 Auto_Analysis 工整,基本 demo 里有许多自家 app 测试的东西,没有完全剥离开,好多用例也都保留在了项目里,不像 Auto_Analysis 做了一个测试 apk 和 Demo。但它的用例维护比较麻烦 要改三处 py 好像,
不过这些都不是大问题,lose 测试小书童 的学习和整合能力明显更强,很有潜力。开源就是怕你开源了就不维护了。
群里还是有很多大神的,但感觉有的好东西,都是藏着掖着给自家用的。。。。
创建文件/home/cmd/workspace/git/appium/Log/info.pickle 成功
创建文件/home/cmd/workspace/git/appium/Log/sum.pickle 成功
创建文件/home/cmd/workspace/git/appium/Log/devices.pickle 成功
创建这几个文件 和 *.pickle 是做什么用的 能介绍下吗?
支持楼主的分析精神 鼓捣精神。就是需要您这样的先行者。
插桩的源码工程 也是开源的啊 这个我没仔细调试过,难度太大了。。。。也没时间仔细看。