![f54104470b929689f50db9ddba3ac723.png](https://i-blog.csdnimg.cn/blog_migrate/e7fe1f4ef3084a29a07adf9a41385b59.jpeg)
Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android应用程序。直接多种语言:java,python等等。
![8069037729827453dbcb04a7d8555f84.png](https://i-blog.csdnimg.cn/blog_migrate/f1d6ca90035c3a47a939638c756a7e22.jpeg)
appium架构
![261131afd528953fbbaf1417516e379e.png](https://i-blog.csdnimg.cn/blog_migrate/549aca53ffa87d9206368157eadf000e.jpeg)
desired capability
desired capability的功能是配置Appium会话。他们告诉Appium服务器您想要自动化的平台和应用程序。官网介绍: http:// appium.io/slate/en/mast er/?java#appium-server-capabilities
![d8144c994faea17a93ba78c5a41fd3ed.png](https://i-blog.csdnimg.cn/blog_migrate/9d01c77c33ebc82bf1c56ad43226566d.jpeg)
- Desired Capability的值-公用
![b82ab6758dfeee7f2327a7d230d35f5c.png](https://i-blog.csdnimg.cn/blog_migrate/7e8b7c50824e487838ed502fc95b963d.jpeg)
- Desired Capability的值-android
![55d8b85338fb2cdc574387b5966b223c.png](https://i-blog.csdnimg.cn/blog_migrate/203c6bcb35185623b3c66a3d91c821c2.jpeg)
image.png
- Desired Capability的值-ios
![9db8b6ebf23ef32c0ecefba7d05690f4.png](https://i-blog.csdnimg.cn/blog_migrate/6999a9ab4b6980518b5bd79133fe9b25.jpeg)
Appium优缺点
- 优点:
支持多种应用程序的测试
支持使用多种语言来编写测试脚本
被测试的应用程序不需要特殊的编译
Appium支持应用之间跳转的测试
- 缺点:
由于服务端运行在电脑上,该工具必须连接电脑才可以运行
只能用于UI的自动化测试,在很多情况下的测试验证只能通过验证界面来进行
操作控件
- 获取控件信息
![1058f8f5b8c556d863422067e3d882a7.png](https://i-blog.csdnimg.cn/blog_migrate/fea634e926c85486ea14f1cbe8eb5e19.jpeg)
- 手势部分
主要有点击、滑动、拖拽、放缩等常用的操作
![0966fee16215ab1f399fe5d306a1db48.png](https://i-blog.csdnimg.cn/blog_migrate/3dbf59f4881af74d94f17163f433fcf4.jpeg)
- 系统操作API
系统操作用于模拟硬件操作、设置网络环境、获取系统信息等,下表简单的介绍一下常用的方法。
![81c83047dd4f7ae7809dab7497454998.png](https://i-blog.csdnimg.cn/blog_migrate/2047ccc5ff4357243813276244da72ec.jpeg)
- 如何获取参数
设置---关于手机
platformName
platformVersion
![256875d4816265cc841a6de1e377cfb1.png](https://i-blog.csdnimg.cn/blog_migrate/ba07302bc27a3a859ef035244131e79a.jpeg)
命令: adb devices
deviceName
![cfb1b8c3041b04b3f68b20fe717ce784.png](https://i-blog.csdnimg.cn/blog_migrate/1417d4a4b01c36fd111a48bdfe69d83e.jpeg)
image.png
命令:
adb shell
logcat | grep cmp=
![5d1dc0416bfd1ea24ee3686d3392f067.png](https://i-blog.csdnimg.cn/blog_migrate/0d716f5406a996f6b86ce1c7eff542a5.png)
![36bb72e035db9774899ef3d5474f80ad.png](https://i-blog.csdnimg.cn/blog_migrate/a0e17e466d17e6eb31b16af54e0bc9c2.jpeg)
点击start session
![2a1beda514f60aa04450a2272ead9e82.png](https://i-blog.csdnimg.cn/blog_migrate/7ce33730d779a25cde463174f51acf33.jpeg)
截图写错了,写成了onReset 应该是noReset,自动跳过引导页面
![974bdf8fa77e838e1bbbc54d5317033b.png](https://i-blog.csdnimg.cn/blog_migrate/f53188c56049f481de70aff45776a458.jpeg)
进入了界面
![4b26c6683785f2b17ad8d38b91acf533.png](https://i-blog.csdnimg.cn/blog_migrate/869a3dc42a15f627d02beb905ef96dc9.jpeg)
![e75b25c1d3edc1d0baf7e1a87407c42a.png](https://i-blog.csdnimg.cn/blog_migrate/bbbea33c06d0d8bb078af6df580139c5.jpeg)
- 如何录制脚本
1.start Recording
![a459e637893c2274af5d4106edeb82ca.png](https://i-blog.csdnimg.cn/blog_migrate/459a25fb2f4f0307b0850bfad46b9c04.jpeg)
2.Select Elements,选中后选择一个用户名输入框
![73569bc720dbc926c1b3e291ea583241.png](https://i-blog.csdnimg.cn/blog_migrate/041eda90af6c0db8736b9c60ef8e1dfe.jpeg)
3.点击send keys
![b68fd79eda8479ae71509111fb2502ac.png](https://i-blog.csdnimg.cn/blog_migrate/fb2809f83703a9207b6d067e9265a54c.jpeg)
4.输入 http:// idig8.com 选择send keys
![60323506767dfe7a7fa68f93e5f10282.png](https://i-blog.csdnimg.cn/blog_migrate/1223878972502d59f7f1059ed27c826e.jpeg)
5.模拟器用户名框也发生了变化
![2c995e07ca2641c3850e3135c878e645.png](https://i-blog.csdnimg.cn/blog_migrate/88c1163d081180ebd54843d96d58f4bc.jpeg)
6.Select Elements,选中后选择请输入密码框
![2b3cc920434645b078ebb54972e9077d.png](https://i-blog.csdnimg.cn/blog_migrate/16bacf858b3ff874126db82b5b0ed69d.jpeg)
7.点击send keys
![bcaa4b815586fc643d7e6177df0f1c1a.png](https://i-blog.csdnimg.cn/blog_migrate/6035ed9e06af7b41d00559616121e676.jpeg)
8.模拟器密码框发生变化
![a2d793e2b9359e6df4c567761255af6d.png](https://i-blog.csdnimg.cn/blog_migrate/e068b02da327b32b3fc7c8cfa68ecbaa.jpeg)
image.png
9.Select Elements选择登录,点击Tap
![1c3ffeccf6f8f69b30ac4522af2b171a.png](https://i-blog.csdnimg.cn/blog_migrate/fca4909fb12b61490548401f57700314.jpeg)
- 有反应了,哈哈
![218a8bc1c7ad07cd57d7d7bd5a50b61a.png](https://i-blog.csdnimg.cn/blog_migrate/e9305a5fd9ba6243aab6dfc5d9cc9f7a.jpeg)
- 脚本出来了
MobileElement el6 = (MobileElement) driver.findElementById("com.tal.kaoyan:id/login_email_edittext");
el6.sendKeys("idig8");
MobileElement el7 = (MobileElement) driver.findElementById("com.tal.kaoyan:id/login_password_edittext");
el7.sendKeys("password");
MobileElement el8 = (MobileElement) driver.findElementById("com.tal.kaoyan:id/login_login_btn");
el8.click();
![56694bc92cbb57b26367c5fb85c6d591.png](https://i-blog.csdnimg.cn/blog_migrate/74fcbc39820e0851f1ad97f2342d841b.jpeg)
- 真实的用户名和密码,登录到系统内部。模拟器刷新了,但是appium没有刷新可以点击这个按钮。
![16c829b1074d49f12d9b53163e2371af.png](https://i-blog.csdnimg.cn/blog_migrate/684adffbea04f451f802c28f294618a7.jpeg)
PS:appium明显要比安卓的ui那个工具好用多了,重点是开头的那段配置,一开始的截图,我的Andriod单词写错了,是onReset,截图写成了onReset,希望不会误导老铁们。