0. 基于 Appium 的 UI 自动化封装思路

封装的目的主要是:

  1. 便于维护,元素修改等可以及时/快速的更新代码
  2. 方便用例编写,减少用例中的细节,用例中只涉及到减少用例的编写时间
  3. 减少重复代码

1. 主要模块

page

class LoginPage(BasePage):
    """登录页面
    """
    def __init__(self):
        self.elements = {
            "帐号": {
                "type": TEXT,
                "locator": "id=id-of-account"},
            "密码": {
                "type": TEXT,
                "locator": "xpath=xpath-of-password"},
            "登录": {
                "type": BUTTON,
                "locator": "id=id-of-login-button"}
            }

business

class LoginBusiness(BaseBusiness):
    """登录界面逻辑
    """
    def login(self, account, password):
        loginPage.elements["帐号"].text = account
        loginPage.elements["密码"].text = password
        loginPage.elements["登录"].click()

testcase

class LoginTest(TestCase):
    def test_login(self):
        loginBusiness.login("account", "password")

3. 主要思路

这样要写用例只需要完善page,business,testcase,其余底层的东西都不需要关注。

4. 其它问题

目前自动化已经基本跑起来了,不过还有一些问题暂时没有完善,没有特别好的思路,有啥思路可以留言交流下呀

  1. 多设备执行,单机多设备或者分布式多设备执行,设计到设备管理,结果收集。
  2. 多设备执行的时候帐号分配问题(因为某些用例只能用特殊的某几个帐号,分到多个设备执行会出现互踢)


↙↙↙阅读原文可查看相关链接,并与作者交流