Enviar pesquisa
Carregar
豆瓣I os自动化测试实践和经验
•
2 gostaram
•
606 visualizações
D
drewz lin
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 39
Baixar agora
Baixar para ler offline
Recomendados
Athrun instrument driver
Athrun instrument driver
drewz lin
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
drewz lin
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
建興 王
例外處理與單元測試
例外處理與單元測試
國昭 張
Automated Web Testing Using Selenium
Automated Web Testing Using Selenium
昱劭 劉
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
Clipper@datacon.2019.tw
Clipper@datacon.2019.tw
Wei-Yu Chen
Ant构建工具快速入门
Ant构建工具快速入门
minghe36
Recomendados
Athrun instrument driver
Athrun instrument driver
drewz lin
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
drewz lin
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
建興 王
例外處理與單元測試
例外處理與單元測試
國昭 張
Automated Web Testing Using Selenium
Automated Web Testing Using Selenium
昱劭 劉
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
Clipper@datacon.2019.tw
Clipper@datacon.2019.tw
Wei-Yu Chen
Ant构建工具快速入门
Ant构建工具快速入门
minghe36
PHPUnit slide formal
PHPUnit slide formal
jameslabs
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
drewz lin
Web testing automation
Web testing automation
kuozui
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
bj_qa
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
Web development with zend framework
Web development with zend framework
thinkinlamp
單元測試
單元測試
國昭 張
例外處理實務
例外處理實務
Jeff Chu
Foundation of software development 1
Foundation of software development 1
netdbncku
Continuous integration
Continuous integration
netdbncku
Xpp
Xpp
drewz lin
Unit test
Unit test
shan chen
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
延胜 黄
敏捷测试中的工具实现
敏捷测试中的工具实现
drewz lin
PHPUnit
PHPUnit
jameslabs
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
AgileCommunity
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...
Jimmy Lai
美团前端架构简介
美团前端架构简介
pan weizeng
Elixir 好用的編輯器
Elixir 好用的編輯器
bobo52310
Nodejs & NAE
Nodejs & NAE
q3boy
Tip for Editors
Tip for Editors
Chun-Yu Tseng
Mais conteúdo relacionado
Mais procurados
PHPUnit slide formal
PHPUnit slide formal
jameslabs
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
drewz lin
Web testing automation
Web testing automation
kuozui
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
bj_qa
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
Web development with zend framework
Web development with zend framework
thinkinlamp
單元測試
單元測試
國昭 張
例外處理實務
例外處理實務
Jeff Chu
Mais procurados
(8)
PHPUnit slide formal
PHPUnit slide formal
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
Web testing automation
Web testing automation
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Web development with zend framework
Web development with zend framework
單元測試
單元測試
例外處理實務
例外處理實務
Semelhante a 豆瓣I os自动化测试实践和经验
Foundation of software development 1
Foundation of software development 1
netdbncku
Continuous integration
Continuous integration
netdbncku
Xpp
Xpp
drewz lin
Unit test
Unit test
shan chen
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
延胜 黄
敏捷测试中的工具实现
敏捷测试中的工具实现
drewz lin
PHPUnit
PHPUnit
jameslabs
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
AgileCommunity
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
yang alex
Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...
Jimmy Lai
美团前端架构简介
美团前端架构简介
pan weizeng
Elixir 好用的編輯器
Elixir 好用的編輯器
bobo52310
Nodejs & NAE
Nodejs & NAE
q3boy
Tip for Editors
Tip for Editors
Chun-Yu Tseng
Berserk js
Berserk js
taobao.com
持续交付最佳实践——百度技术沙龙201110
持续交付最佳实践——百度技术沙龙201110
Qiao Liang
Software Engineer Talk
Software Engineer Talk
Larry Cai
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
JoXuZi
测试驱动的前端开发初探
测试驱动的前端开发初探
hua qiu
Test driven-frontend-develop
Test driven-frontend-develop
fangdeng
Semelhante a 豆瓣I os自动化测试实践和经验
(20)
Foundation of software development 1
Foundation of software development 1
Continuous integration
Continuous integration
Xpp
Xpp
Unit test
Unit test
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
敏捷测试中的工具实现
敏捷测试中的工具实现
PHPUnit
PHPUnit
2014/02: 嵌入式測試驅動開發
2014/02: 嵌入式測試驅動開發
构建可维护的Javascript 小米网
构建可维护的Javascript 小米网
Continuous Delivery: automated testing, continuous integration and continuous...
Continuous Delivery: automated testing, continuous integration and continuous...
美团前端架构简介
美团前端架构简介
Elixir 好用的編輯器
Elixir 好用的編輯器
Nodejs & NAE
Nodejs & NAE
Tip for Editors
Tip for Editors
Berserk js
Berserk js
持续交付最佳实践——百度技术沙龙201110
持续交付最佳实践——百度技术沙龙201110
Software Engineer Talk
Software Engineer Talk
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
Scrum gathering 2012 Shanghai_精益与持续改进分会场演讲话题: 大型企业ci平台建设和实施分享(陈小光)
测试驱动的前端开发初探
测试驱动的前端开发初探
Test driven-frontend-develop
Test driven-frontend-develop
Mais de drewz lin
Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
drewz lin
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
drewz lin
Phu appsec13
Phu appsec13
drewz lin
Owasp2013 johannesullrich
Owasp2013 johannesullrich
drewz lin
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
drewz lin
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
drewz lin
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
drewz lin
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
drewz lin
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
drewz lin
Appsec usa roberthansen
Appsec usa roberthansen
drewz lin
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
drewz lin
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
drewz lin
Appsec2013 presentation
Appsec2013 presentation
drewz lin
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
drewz lin
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
drewz lin
Amol scadaowasp
Amol scadaowasp
drewz lin
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
drewz lin
Vulnex app secusa2013
Vulnex app secusa2013
drewz lin
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
drewz lin
新浪微博稳定性经验谈
新浪微博稳定性经验谈
drewz lin
Mais de drewz lin
(20)
Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
Phu appsec13
Phu appsec13
Owasp2013 johannesullrich
Owasp2013 johannesullrich
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Appsec usa roberthansen
Appsec usa roberthansen
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation
Appsec2013 presentation
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
Amol scadaowasp
Amol scadaowasp
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
Vulnex app secusa2013
Vulnex app secusa2013
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
新浪微博稳定性经验谈
新浪微博稳定性经验谈
豆瓣I os自动化测试实践和经验
1.
豆瓣iOS自动化测试实践和经验
豆瓣QA: 芈峮
2.
iOS自动化测试 •
持续构建iOS应用 • 自动化测试工具评估 • Ynm3k功能简介
3.
持续构建iOS应用
4.
传统的测试发布流程
• Dev code Coding • Tester test tes9ng • PM release release
5.
原始的让你抓狂的流程
6.
发现问题 • UED
和PM无法在测试阶段无缝的介入 • 编译打包的过程没有纳入测试管理 • 测试人员很难建立被测app和版本管理工具中 的版本号之间的关联关系 • 整个流程需要更加容易执行,并且需要解放 dev,让dev把更多的精力放在coding上。
7.
解决方案——工具化,自动化
8.
实际操作
Wait Then
9.
实现方法 • Jenkins
+ hockey 步骤: 1 下载代码 2 使用Xcode integra9on生成ipa 3 把生成的ipa拷贝到hockey的目录下
10.
iOS自动化测试工具评估
11.
豆瓣需要测试工具的特点 • 框架方面:
标准的xUnit框架结构 • UI识别: 以扩展库的形式提供UI识别方法 • 启动方法: 需要有命令行启动方式 • 测试结果: xml或者html格式结果,或者提供 相关方法定制输出测试结果
12.
商业工具 • DeviceAnywhere
• QTP • ⋯⋯
13.
Unit Test Tools
• OCUnit • GTM • GHUnit
14.
Acceptance Test Tools(open
Source) • UISpec Frank • KIF
15.
Acceptance Test Tool
• UI Automa9on(官方) • FoneMonkey
16.
FoneMonkey VS
UI Automa9on FoneMonkey UI Automa1on 框架结构 OCUnit 无 ui识别方式多样化 无 有,支持至少2种方式 命令行启动测试 有 有 输出测试报告集成CI 有 无
17.
UI Automa9on Advanced
• Tuneup.js • Jasmine with UI Automa9on
18.
结论 • UI
Automa9on 官方提供,还提供了网络,内存等方面的 监控。不满足框架的部分,我们可以改造, 我们可以扩展。
19.
Ynm3k来了
20.
为什么是ynm3k
21.
Ynm3k功能列表 功能结构
解决方案 详细说明 xUnit 引入了YUItest 可以使用testSuite testcase等,并 且可以使用YUItest的相关事件。 ui识别 引入了一个Finder,并且 原生API定位方式,写法过于复杂。 可以使用UI Automa9on 并且在语义表达方式不友好。 原生的API Finder模仿selenium的接口形式, 对ui 识别的方法进行了封装。 命令行启动测试 原生支持, 封装了一个更友好的shell脚本来完 成这个工作 测试结果xml格式 YUItest YUItest生成测试结果。并且由 输出 +performTaskWithPathAr performTaskWithPathArgumentsTim gumentsTimeout eout 方法写成文件 Monkey测试 UI Automa9on API组合使 模仿android Monkey 写了一个做随 用 机健壮性测试的iOSMonkey
22.
Ynm3k Dev
23.
现在开始使用ynm3k • 下载
-‐-‐ hXps://github.com/douban/ynm3k • 初始化环境 -‐-‐ sh setup.sh
24.
无需coding,即可Monkey test •
/robot4ios/u9l/iosMonkey.js 设置并且运行:
25.
Hello Ynm3k
26.
UI LogTree
27.
UI Auto
Test UI Automa9on API Ynm3k API
28.
豆瓣电影实践
29.
豆瓣FM实践
30.
豆瓣阅读实践
31.
自动化测试的约定 • TestCase
和 TestSuite约定: simpletest.js demotest.js
32.
自动化测试的约定 • name属性
• value属性(只有在控件为text的时候才有效, 并且只要表示text属性就好) • Name属性的命名规则: 1 不重复 2 不要变化 3 只需要在被操作到的控件上添加就好,
33.
加入持续集成
34.
持续集成的问题 • 开机以后第一次,命令行启动Instrument会
要求输入密码。 -‐-‐-‐-‐解决方案Tao测试 的这边文章: 关于Instrument远程执行自动化脚本模拟器页 面卡住问题
35.
持续集成后
36.
gitcommit
37.
加入豆瓣 • 移动设备开发工程师
• QA工程师(高级移动测试工程师) • 更多豆瓣职位 • team@douban.com
38.
Q & A
您也可以通过以下方式找到我: 豆瓣主页:hXp://www.douban.com/people/mijun/ Email: mijun@douban.com Sina微博: @芈峮
39.
Thanks
Baixar agora