第1页
一个从 1到100000用户 的开源项目
如何 不经意的创造一个流行的开源项目
第2页
关于主讲人
Dan
Cuellar
• 毕业于卡内基梅隆大学计算机系 • Appium项目发起人 • 供职于 FOODit,任软件测试工程总监 • 曾供职于Microsoft,
Zoosk,
and
Shazam
第5页
测试任务中最困难的5个字:
第6页
以及类似的
第7页
不完美的解决方案
第8页
什么是APPIUM
• 基于Selenium
J SON-‐wire
协 议的,可以控制原生或混合 iOS
及 Android
应 用的实现。
• 移动应用功能测试领域最流行的开源框架。
第9页
APPIUM 哲学
• 使用标准化模块化的APIs
和技术; • 支持多样语言
Java,
C #,
P ython,
Ruby,
Objective-‐C,
n ode.js,
PHP,
以及更多
• 测试中不修改应用本身;
• 免费并开源;
第10页
如何工作?
JSON-‐Wire
Protocol
Request
Test
脚 本
HTTP
JSON-‐Wire
Protocol
Response
UIAutomation /
UIAutomator
Appium Server
第11页
为世人所知
第12页
为世人所了解
• 解答了论坛中所有关于该项目的问题; • 解答了StackOverflow中所有关于该项目的问题; • 在尽可能多的会议中发表演讲; • 积极向感兴趣的公司介绍我们; • 活跃在 Twitter及其他社交媒体。
第13页
失控是好现象
• 志愿者们自发提交了Android支持 • 代码被移植到了其他语言 • 我甚至曾经一度不能提交修改 (!) • 我曾经因为其他演讲者已经发表了关于
Appium主题演讲,而被大会拒绝接纳。
第14页
扩展性
• 最终,
你无法亲力亲为回答所有问题
• 人们可以从已经丰富了的论坛中学习,开源社区也可以回答他们;
• 你无法测试或评估 每一次提交
• 单元测试是必要的
• 你已经不知道appium中正在发生什么
• 撰写高质量的发布说明
• 附加高质量的提交说明
第15页
发起一个开源项目
你不应该:
• 使用非开源的技术 • 用电子邮件共享代码 • 缺少文档 • 忘记公开你的讲演文档 • 仅私下交流遇到的问题
正确的做法:
• 全程使用开源技术 • 把代码放到 GitHub • 撰写文档 • 共享你的演讲文档及视频 • 在论坛中公开得回应问题
第17页
出现分歧时
• 事先约定一致认可你们的思想及目标将会很有帮助
• 这里面不涉及等级、权威
• 分歧和冲突最好公开讨论解决
• 辩论会带来更好的解决方案 • 透明化的解决方案能令最终用户更好得理解你们的决定
• 动手写代码的人,一般有做决定的主动权
第18页
当和平已经遥不可及
• 失去一些开发者是个损失,但也不是什么大不了的
• 除非他们彻底退出开源世界,
他们的工作成果依然可以被大家共享
• 存在多个类似的项目并不是一件坏事
• 竞争带来进步 • 用户喜欢有可选择
总之,
最了不起的那个会胜出
第20页
一些数字
在过去的3年里 • 在GitHub上收到超过2,000个👍,
1,500
Forks • 超过100个贡献者及 5,000次提交 • Appium 1.0
被下载超过150,000
次 • 有超过3,000个问题被解决
第32页
第一条由机器人发出的TWITTER
第33页
APPIUM机器人是如何工作的?
• Calibrate
the
robot
to
map
points
in
the
physical
world
to
points
on
a
device
screen
• Run
an
app
on
the
device
with
Appium that
can
tell
you
what
coordinates
are
being
touched
• Touch
three
places
on
the
device
and
record
the
physical
a nd
device-‐ centric
coordinates
• Build
a
matrix
to
translate
any
point
between
the
two
systems
• Intercept
touch
actions
with
the
Appium Server
and
send
them
to
the
robot
第34页
数学原理
第36页
APPIUM为何成功?
• 从第一天开始,
我们就有一个清晰的指导思想和目标 • 尽可能多的吸纳成员,
使我们成为一个活跃的社区
• 支持尽可能多的语言和平台 • 使用已经存在的、大家熟悉的工具 • 我们所有的决定都是为了使我们成为一个活跃的社区
• 我们为之奉献
• 去出席参加每一个可以与我们相关的会议、论坛 • 在第一年里,我们机会回答了社区中每一个问题
第37页
支持的语言和平台
第38页
我们参加的会议
第39页
多种语言的网站
第40页
支持MAC和WINDOWS
第41页
我的习得
“Life
can
be
much
broader
once
you
d iscover
one
simple
fact:
Everything
around
you
that
you
call
life
was
made
up
by
people
t hat
were
no
smarter
than
you
a nd
you
c an
change
it,
you
c an
influence
i t,
you
can
build
y our
own
things
that
other
people
c an
use. Once
you
learn
that,
you'll
n ever
be
the
same
again.”
-‐Steve
Jobs
第42页
更多
• 网站:
http://www.appium.io • Slack:
appium.slack.com • 论坛:
discuss.appium.io • GitHub:
http://www.github.com/appium/appium