appium自动化测试实例 游戏自动化

Appium is an open source test automation framework for use with native and hybrid mobile apps.
TTF孵化项目
rest-assured可以很方便的对接口进行测试,还可以对json进行解析实现appium的自动化,三步走,具体如下:
第一步:启动appium的服务端:
可以通过命令行的方式启动:cmd,然后输入appium,如下图
也可以打开桌面程序appium,点击右上角的运行按钮,如下图:
第二步,写自动化脚步,我这里用eclipse写的,使用appium的java客户端,如下图:
报错是因为我没有加载相应的包,加载一下就可以了,如下图红圈里面的这些包。(记得把Junit4或者是Testng也加载一下)
我先来说一下我的这个代码,我采用了MVC框架的思想,分为业务层(M),视图层(V),数据层(c)。
其中calculator.java文件,放的就是业务层的代码,在这里,我只关心业务层面,除非业务发生变化,否则我都无需修改写好的脚本。
po_android.java文件,我放的是页面元素,页面元素可以通过E:\ADT\sdk\tools下的uiautomatorviewer.bat程序获取。
还有一个数据层,当你需要进行数据的参数化时,就需要用到了,比如用10个不同的用户和密码进行不断的登录和退出。我这里没有创建数据层,如果需要,建一个data.java即可。
还有就是app目录,把需要执行的apk包放到这里即可。
显附上我的代码:
calculator.java
2 /*问题汇总
* 1.触摸和多点触摸
* 2.等待元素出现时间
* 3.多端口多手机进行自动测试
* 4.参数化
* 5.异常情况不退出程序,继续执行到完
10 import java.io.F
11 import java.net.URL;
12 import java.util.L
14 import org.junit.AfterC
15 import org.junit.A
16 import org.junit.BeforeC
17 import org.junit.T
18 import org.openqa.selenium.By;
19 import org.openqa.selenium.WebE
20 import org.openqa.selenium.remote.DesiredC
22 import io.appium.java_client.AppiumD
23 import io.appium.java_client.TouchA
24 import io.appium.java_client.android.AndroidD
25 import page_object.android.po_
27 import static org.junit.Assert.*;
29 public class calculator {
private static AppiumDriver&WebElement&
private po_android po = new po_android();
@BeforeClass
public static void setUp() throws Exception {
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "/app");
File app = new File(appDir, "mywork.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName","Android Emulator");
capabilities.setCapability("platformVersion", "5.0");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "org.solovyev.android.calculator");
capabilities.setCapability("appActivity", ".CalculatorActivity");
capabilities.setCapability("appPackage", "com.witdoing.mywork");
capabilities.setCapability("appActivity", ".view.welcome.WelcomeActivity");
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
driver = new AndroidDriver&&(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Thread.sleep(5000);
@AfterClass
public static void tearDown() throws Exception {
driver.quit();
public void apiDemo01() throws Exception{
Thread.sleep(5000);
driver.findElementById(po.logid).clear();
driver.findElementById(po.logid).sendKeys("");
driver.findElementById(po.passwd).clear();
driver.findElementById(po.passwd).sendKeys("654321");
driver.findElementById(po.login).click();
public void apiDemo02() throws Exception{
driver.findElement(By.id(po.order_layout)).click();
driver.findElementById(po.iv_title_back).click();
public void apiDemo03() throws Exception{
driver.findElementById(po.work_layout).click();
driver.findElement(By.id(po.iv_title_back)).click();
//设置-关于我做
public void apiDemo04() throws Exception{
driver.findElementById("com.witdoing.mywork:id/setting_tv").click();
driver.findElement(By.id("com.witdoing.mywork:id/about_tv")).click();
Assert.assertEquals("关于我做",driver.findElementById("com.witdoing.mywork:id/tv_title_text").getText());
Assert.assertEquals("版本 1.0.5", driver.findElementById("com.witdoing.mywork:id/version_tv").getText());
List&WebElement& els = driver.findElementsByClassName("android.widget.TextView");
assertEquals("官方微信: witdoing", els.get(4).getText());
<span style="color: #0
driver.findElementById(po.iv_title_back).click();
<span style="color: #1
<span style="color: #2
<span style="color: #3
//设置-昵称
<span style="color: #4
<span style="color: #5
public void apiDemo05() throws Exception{
<span style="color: #6
driver.findElementById("com.witdoing.mywork:id/nick_tv").click();
<span style="color: #7
driver.findElement(By.id("com.witdoing.mywork:id/nick_edit")).click();
<span style="color: #8
driver.findElement(By.id("com.witdoing.mywork:id/nick_edit")).sendKeys("我的名字叫什么2");
<span style="color: #9
driver.findElementById("com.witdoing.mywork:id/save_btn").click();
<span style="color: #0
driver.findElementById("com.witdoing.mywork:id/dialog_confirm_btn").click();
<span style="color: #1
driver.findElementById(po.iv_title_back).click();
<span style="color: #2
Assert.assertEquals("我的名字叫什么",driver.findElementById("com.witdoing.mywork:id/nick_tv").getText());
<span style="color: #3
driver.findElementById(po.iv_title_back).click();
<span style="color: #4
<span style="color: #5
<span style="color: #6
//设置-宝库
<span style="color: #7
<span style="color: #8
public void apiDemo06() throws Exception{
<span style="color: #9
driver.findElementById("com.witdoing.mywork:id/treasury_layout").click();
<span style="color: #0
List&WebElement& els = driver.findElementsById("com.witdoing.mywork:id/title_tv");
<span style="color: #1
Assert.assertEquals("宝库新分享了一篇文章[自动化测试问题汇总V3]。", els.get(1).getText());
<span style="color: #2
els.get(1).click();
<span style="color: #3
<span style="color: #4
WebElement el = driver.findElementById("com.witdoing.mywork:id/content_img");
<span style="color: #5
TouchAction action = new TouchAction(driver);
<span style="color: #6
action.longPress(el).moveTo(100, 120);
<span style="color: #7
<span style="color: #8
<span style="color: #9
Thread.sleep(5000);
<span style="color: #0
driver.findElementById(po.iv_title_back).click();
<span style="color: #1
driver.findElementById(po.iv_title_back).click();
<span style="color: #2
<span style="color: #3
<span style="color: #4
<span style="color: #5
<span style="color: #6 }
po_android.java
1 package page_object.
3 import org.openqa.selenium.WebE
4 import org.openqa.selenium.support.FindBy;
6 public class po_android {
public String logid = "com.witdoing.mywork:id/user_edit" ;
public String passwd = "com.witdoing.mywork:id/pwd_edit" ;
<span style="color: #
public String login = "com.witdoing.mywork:id/login_btn" ;
<span style="color: #
public String order_layout = "com.witdoing.mywork:id/order_layout" ;
<span style="color: #
public String iv_title_back = "com.witdoing.mywork:id/iv_title_back" ;
<span style="color: #
public String work_layout = "com.witdoing.mywork:id/work_layout" ;
<span style="color: #
<span style="color: #
<span style="color: #
@FindBy(id="com.witdoing.mywork:id/tv_title_text")
<span style="color: #
public WebE
<span style="color: #
<span style="color: # }
手机插入电脑,先安装一下手机驱动(如果自行安装失败的话,可以通过驱动人生进行安装)。
然后打开命令行cmd,输入adb查看手机设备是否已经被识别到。
如果识别到了,这时执行eclipse中的运行按钮,就可以看到手机开始进行自动化测试了。
阅读(...) 评论()您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
基于appium的性能自动化使用说明.docx 4页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
基于appium的性能自动化使用说明
你可能关注的文档:
··········
··········
版本AuthormodifyNoteV1.0.0Jolly一、 关于appium1、 概念Appium是一个开源的,适用于原生或混合移动应用应用( hybridmobileapps)的自动化测试平台. Appium应用WebDriver: JSONwireprotocol 驱动安卓和iOS移动应用.2、 特点A、 开源、跨平台(支持ios、android、hybrid)B、 基于 Apple、Google原生UIAutomator框架,支持所有自动化apisC、 使用 SeleniumJSONWireProtocol,支持selenium支持的语言及seleniumwebdriver;二、 环境依赖1、 开发环境iOSMacOSX10.7+ XCode4.5+w/CommandLineTools AndroidMacOSX10.7+orWindows7+orLinux AndroidSDK≥16(SDK&16inSelendroidmode)2、Android注意事项A、 需要安装jdk、eclipse、sdk保证adbshell等正常运行B、 Root过的手机or模拟器。Eg.bluestacks不要用google原生模拟器,超级慢;不要用genymotion。卫士不支持在genymotion上安装;C、 Androidsdk最低版本支持apilevel18。因此选择deviceoremulator时注意系统版本号D、 尽量不要选用miui,MXm9之类定制rom;三、 appium安装1、 下载路径/appium/appium.app/downloads/下载AppiumForWindows-XXX.zip,下载1.1及以上版本2、 安装包,解压,appium.exe,执行测试工程前必须启动appium服务两种方式:A、 点击appium.exe,右上角有启动按钮,无需设置任何参数B、 Cmd下运行命令:appium3、 Check安装appium-doctor 来验证Appium的所有依赖。运行 appium-doctor,然后提供 --ios 或者 --android 参数来验证两个平台的依赖是否配置正确。如果从源代码运行,你可以使用 bin/appium-doctor.js 或者 nodebin/appium-doctor.js四、 工程配置1、 svn路径:/svn/DataForT/tools_mobilesafe/PerfermanceTest_MobileSafe2、 测试工程为普通java工程。下载后修改如下文件:Init.java中install()函数中“adb–rinstalle:\project\apkPath”注意把安装路径改为卫士apk的本地路径3、 主程序startTest.java4、 工程目录简介5、 本地文件修改A、 Init.javainstall()函数中“adb–rinstalle:\project\apkPath”注意把安装路径改为卫士apk的本地路径B、 Config.ini性能监测工具配置文件[config]packageName:被测app包名step:记录内存数据时间间隔htmlTemplate:报表模板frame_WS所在路径,本地路径。请确认是否填错。错误的话“~/project/data/场景名目录下无报表生成perfDataOutputFolder:具体场景性能数据存储路径,本地路径flag:0未记录1记录ing。该配置用户可忽略不计[mail]预留配置,暂不支持C、 试试3、五、 调试技巧1、 主程序startTest.java2、 Debug+Breakpoint3、 DDMS4、 Dumpsys5、 perfTool_WS.exe+cmd6、 Manual——&Auto六、 Reference1、 中文官网http://appium.io/slate/cn/v1.1.0/?ruby#toc_02、 Saucelabs中关于appium介绍/tutorials/appium/3、 AppiumclientlibsRuby- /appium/ruby_libJava- /appium/java-clienthttp://appium.github.io/java-client/PHP- /appium/php-clientJavaScript- /admc/wdPython- /appium/python-clientC#- /appium/appium-dotnet-driver4、 Junit/junit3.8.1/javadoc/junit/framework/TestCase.htmlAppiumClientLibraries5、 6、 D
正在加载中,请稍后...appium手机自动化测试_TesterHome公开版.pdf
扫描二维码,下载文件到手机
相关文档推荐
当前文件信息
浏览:18147次
保存:225次
下载:5151次
您的VIP会员已过期,是否续费?
用户应遵守著作权法,尊重著作权人合法权益,不违法上传、存储并分享他人作品。举报邮箱:
京网文[0号 京ICP证100780号}

我要回帖

更多关于 ios appium自动化测试 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信