walterwhites/appium-module
Composer 安装命令:
composer require walterwhites/appium-module
包简介
Appium module for codeception
README 文档
README
Appium module for Codeception
Easy Appium integration, iOS and Android Automation.
Appium-codeception-module
Table of Contents
Install
Just add walterwhites/appium-module to your project's composer.json file:
{
"require": {
"walterwhites/appium-module": "dev-master"
}
}
then run composer install
Tests
config for iOS
class_name: IosTester modules: enabled: # Enable appium module - \Appium\Appium: - Asserts: config: # Configuration for appium module \Appium\Appium: host: 0.0.0.0 local: true port: 4723 browserName: '' desiredCapabilities: platformName: iOS platformVersion: '13.2' deviceName: iPhone 11 Pro xcodeOrgId: '' xcodeSigningId: iPhone Developer noReset: true fullReset: false clearSystemFiles: true automationName: XCUITest bundleId: %IOS_BUNDLE_ID% #app: %IOS_APP_PATH% #bundleId: bundleId-of-your-app showIOSLog: false
Generating tester classes
To generate actor class for the AndroidTester/IosTester defined inside android.suite.yml and ios.suite.yml
run the following command:
codecept build
usage
Below an example of a classic register method
/** * @group register * Tests the sign up * @param User $params */ public function registerByEmail(User $params) { $this->test->clickOnButton('SIGN UP', 400); $this->test->clickOnButton('SIGN UP WITH EMAIL', 400); $this->test->setText('First name', $params->firstName); $this->test->setText('Last name', $params->lastName); $this->test->setText('Email address', $params->email); $this->test->hideKeyboard(); sleep(2); $this->test->touchPositionedButon(2); sleep(2); $this->test->touchPositionedButon(3); $this->test->clickOnButton('SIGN UP', 300); }
- clickOnButton clicks on the button with label 'SIGN UP' then 'SIGN UP WITH EMAIL'
- setText updates the text field with value 'First name' to $params->firstName
- hideKeyboard closes the Keyboard (not working on all iOS devices)
- touchPositionedButon taps on a button or checkbox according his position
AppTestCase
protected $locatorStrategy = ILocatorStrategy::class_chain; protected $classChainSearch = IClassChainSearch::label; use Button; use TextField; public function setLocatorStrategy($locatorStrategy) { switch ($locatorStrategy) { case ILocatorStrategy::class_chain: $this->locatorStrategy = ILocatorStrategy::class_chain; break; case ILocatorStrategy::predicate_string: $this->locatorStrategy = ILocatorStrategy::predicate_string; break; case ILocatorStrategy::accessibility_id: $this->locatorStrategy = ILocatorStrategy::accessibility_id; break; } } public function setClassChainSearch($classChainSearch) { switch ($classChainSearch) { case IClassChainSearch::label: $this->locatorStrategy = IClassChainSearch::label; break; case IClassChainSearch::name: $this->locatorStrategy = IClassChainSearch::name; break; case IClassChainSearch::value: $this->locatorStrategy = IClassChainSearch::value; break; } }
ILocatorStrategy interface
default locatorStrategy is class chain, you can override it with the following statement
$this->test->setLocatorStrategy(ILocatorStrategy::accessibility_id);
IClassChainSearch interface
IClassChainSearch is an interface which defines the way to search element in the class chain pattern, for example to search a button
public static $button = "**/XCUIElementTypeButton[%s == '%s']";
default value defined in AppTestCase is label, so each time clickOnButton is called, the previous statement becomes
public static $button = "**/XCUIElementTypeButton['label' == '%s']";
you can override it with the following statement
$this->test->setClassChainSearch(IClassChainSearch::name); OR $this->test->setClassChainSearch(IClassChainSearch::value);
full example here
$this->test->clickOnButton('SIGN UP', 400); $this->test->setLocatorStrategy("name"); $this->test->clickOnButton('button_name', 400); $this->test->setLocatorStrategy("value"); $this->test->clickOnButton('button_value', 400);
- the first clickOnButton clicks on button with label 'SIGN UP'
- the second clickOnButton clicks on button with name 'button_name'
- the third clickOnButton clicks on button with value 'button_value'
The second parameter of clickOnButton defines the time in ms before to perform the action
walterwhites/appium-module 适用场景与选型建议
walterwhites/appium-module 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 156 次下载、GitHub Stars 达 1, 最近一次更新时间为 2018 年 08 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 walterwhites/appium-module 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 walterwhites/appium-module 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 156
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-08-01