package com.test;
import com.task.BaseAndroidScene;
public class Demo extends BaseAndroidScene implements Demo常量{
@Override
public void setup() {//该场景所有用例运行前运行,只运行一次
}
@Override
public void teardown() {//该场景所有用例运行完后运行,只运行一次
}
@Override
public void beforeTest(boolean lastcaseresult) {//每条用例运行前都会运行
}
@Override
public void afterTest(boolean thiscaseresult) {//每条用例运行后都会运行
}
}
#Android设置
<item>
#场景包名.类名***(带*号为必填项)
<name>com.test.Demo</name>
#自动设置设备系统:wifi开,自动时间时区,自动亮度开,屏幕休眠5分钟,输入法切换为非appium输入法
<setdevice>true</setdevice>
#描述
<desc>测试</desc>
#使用截图方式 appium/adb/ddmlib
<screenshot>adb</screenshot>
#是否捕获系统Crash
<syscrash>false</syscrash>
#是否捕获应用Crash
<appcrash>false</appcrash>
#自定义日志捕获,以分号间隔
<userlogcatch>Crash=Fatal exception start;</userlogcatch>
#是否强制重新初始化driver
<initdriver>false</initdriver>
#参数设置
<params>a=1,b=2</params>
#appium启动初始配置
<capability>#http://appium.io/docs/en/writing-running-appium/caps/index.html
<udid></udid>
<deviceName></deviceName>
<platformVersion></platformVersion>
<automationName>uiautomator2</automationName>
<platformName>Android</platformName>
#app路径
<app></app>
#不需要重置应用
<noReset>false</noReset>
#是否自动启动,非标准属性
<autoLaunch>true</autoLaunch>
#包名***
<appPackage>xxx.xxx.xxx</appPackage>
#启动Acitivity名***
<appActivity>xxx.xxx.xxx.xxx.xxx.xxx</appActivity>
#每次启动时覆盖session,否则第二次后运行会报错不能新建session<sessionOverride>true</sessionOverride>
#设置默认键盘为appium的键盘
<unicodeKeyboard>true</unicodeKeyboard>
#退出后还原键盘
<resetKeyboard>true</resetKeyboard>
#安装时不对apk进行重签名,设置很有必要,否则有的apk在重签名之后无法正常使用
<noSign>true</noSign>
</capability>
</item>
#iOS设置
<item>
#场景包名.类名***(带*号为必填项)
<name>com.test.Demo2</name>
#描述
<desc>测试</desc>
#备用应用ID
<appid>xxx.xxxx.xxxx.xx;test;</appid>
#使用截图方式 appium/idevicescreenshot
<screenshot>idevicescreenshot</screenshot>
#是否捕获系统Crash
<syscrash>false</syscrash>
#是否捕获应用Crash
<appcrash>false</appcrash>
#app日志TAG***
<idevicesyslogtag>xxxx</idevicesyslogtag>
#是否强制重新初始化driver
<initdriver>true</initdriver>
#参数设置
<params>a=1;b=2</params>
#appium启动初始配置
<capability>
<deviceName>iphone 6</deviceName>
<platformVersion>8.4</platformVersion>
<udid>af4ff49d34f64251a8d00f3f4826740c3ef28b2f</udid>
<automationName>XCUITest</automationName>
<platformName>iOS</platformName>
#IPA绝对路径
<app></app>
#不需要重置应用
<noReset>flase</noReset>
#是否自动启动#
<autoLaunch>true</autoLaunch>
#bundleId***
<bundleId>xxx.xxx.xxx</bundleId>
#wdaLocalPort端口设置
<wdaLocalPort>8100</wdaLocalPort>
#/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
#每次启动时覆盖session,否则第二次后运行会报错不能新建session <sessionOverride>true</sessionOverride>
#TEAM ID和账号名 <xcodeOrgId>BBK276KSZR</xcodeOrgId> <xcodeSigningId>qq297000498@sina.cn</xcodeSigningId>
</capability>
</item>
<item>
<!-- 场景包名.类名 -->
<name>com.test.Demo</name>
<desc>基本功能测试</desc>
<!-- appium启动初始配置 -->
<capability>
<appPackage>vStudio.Android.test</appPackage>
<appActivity>vStudio.Android.test.activity.testActivity</appActivity>
</capability>
</item>
@TestCase(no = 100, name = "用例名称", desc = "XX检查", runtime=1,retry=0,notefailcase=true)
protected boolean 用例方法名() throws ClassAssertException {
//测试用例
//....
return true;//返回false或者抛出异常则判断该用例执行结果为失败
}
建议以此种方式编写用例,日志中将会显示中文控件名,便于 DEBUG
package com.test;
public interface Demo常量 {
String 首页="xxxx";
String 首页_资料="xxxxx";
String 首页_资料_用户名="xxxx";
}
...
OP.findElement(首页).click();
OP.findElement(首页_资料).click();
OP.findElement(首页_资料_用户名).click();
...