STF 关于 [STF] 与 [APPIUM] 集成的一点思考

wangpengfei100 · 2017年11月06日 · 最后由 不贱不散 回复于 2019年10月22日 · 2899 次阅读

测试框架总结与反思

综述:
1.自动化实现⽅方式:
appium:通过服务端起多个端⼝口,实现多对多的连接 testNG:编写测试⽤例,对测试流程进行分层以及断言控制
ExtentReports: 产出漂亮的报告,包含错误截图,appium log 以及控制台⽇日志等
STF:对安卓机进⾏管理,通过 API ⽅法对机器器进行⾃动调起
Jenkins: 使用 stf 的插件,实现对机器的预约
2.STF 实现步骤:
.1.在 ubuntu 系统,安装 stf 安装依赖软件 [rethinkdb JDK Android SDK 等]
通过 git 将项⽬目源码拉起到本地 [git clone https://github.com/openstf/stf.git]
2.1 在本地将源码⽣生效 npm install &&npm link
2.2 运行 stf-doctor,看看依赖以及环境配置
2.3 命令行 [rethinkdb—all blind] 启动数据库,端⼝口 localhost:8080
2.4 命令行 [stf local —public ip <> —allow remote] 启动 stf 服务,端口 localhost:7100
.3.二次开发:界⾯优化
3.Appium 实现步骤:
.1.安装 nodejs
.2.npm install -g appium
.3.npm install -g appium-doctor
.4 使⽤用 maven 拉取 appium 客户端 jar 包
.5.AppiumForSTF 项目,启动 Appium 端⼝口使用随机端口,启动设备号使用 api ⽅法取,
dataprovider 提供到项目
4.TestNG+Extebtreports 实现步骤:
.1.testNG 插件安装
.2.Extebtreports jar 包引入
.3.重写 testNG Ireporter 监听器,写错误重跑以及错误截图⽅法
.4.在 xml 中引⼊入 listener
5.Jenkins 实现步骤:
.1.配置项目
.2.引⼊入 ant 或 maven 启动
.3.使⽤用插件,对机型调起及筛选
.4.配置错误邮件样式及地址
反思:踩坑⽆无数,谷歌无数。很多坑踩⼏天才能出来,主要是理论知识太浅。
尽量量使用新版本工具,Appium,node 等工具 新版本可以避免很多莫名奇妙的问题,同时优化⽣生产力,还在用⼏年前的⽤法,费时间效率低。
科学上网,尽量 ***。如果 npm install 失败,就换成淘宝镜像,cnpm 也非常⽤用。尽量使
用官方推荐的安装⽅法以及官方的 sample Demo,因为官网是即时更新维护的,一定是最不容易易埋雷的打开方式。
多⽤用 github ⽹网站的搜索,查想要的关键词,会看到很对非常有启发的开源项目。

TODO:
1.在 STF 设备管理界面进行二次开发,将 smoke 与 monkey 测试按钮呈现在测试界面,后端调起
monkey 以及 appium.
2.对测试⽤用例例进行分层,工具方法与业务代码抽离.
3.对 ios 机器进行适配兼容,使⽤用其他管理平台进行拓展.

Q1:
群里的朋友们有没有其他的调用 STF Api 的 JAVA 方法,可以贴出 GitHub 地址交流一下。
Q2:
Macaca 的朋友们有没有什么更有趣的打开姿势。

共收到 5 条回复 时间 点赞
  1. 乱码问题解决下
  2. 请问你现在是怎么调用的?这个调用 API 不是通过发请求就可以了吗?
bauul 回复

是的,调用 API 就可以了,但是在 appium 中同时运行机子数量上到 8 台之后,基本上就会乱掉,这个问题没解决掉。

wangpengfei100 回复

怎么乱掉?

想问一下安装 STF 是否只能用 node v8.9.1 + npm 6.0.0,我 NPM 6.0,node 12.4 安装失败。部分错误代码

============

In file included from ../src/bufferutil.cc:16:
In file included from ../../_nan@2.4.0@nan/nan.h:190:
../../_nan@2.4.0@nan/nan_maybe_43_inl.h:88:15: error: no member named 'ForceSet' in 'v8::Object'
return obj->ForceSet(GetCurrentContext(), key, value, attribs);

In file included from ../src/bufferutil.cc:16:
In file included from ../../_nan@2.4.0@nan/nan.h:195:
In file included from ../../_nan@2.4.0@nan/nan_converters.h:59:
../../_nan@2.4.0@nan/nan_converters_43_inl.h:18:1: warning: 'ToBoolean' is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
X(Boolean)
^
../../_nan@2.4.0@nan/nan_converters_43_inl.h:15:15: note: expanded from macro 'X'
return val->To ## TYPE(GetCurrentContext()); \
^
:270:1: note: expanded from here
ToBoolean
linson1228 回复

也遇到了同样的问题,请问解决了吗,好像是版本不匹配的原因?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册