美文网首页性能搞起来测试
python+appium+pytest自动化测试-yaml文件

python+appium+pytest自动化测试-yaml文件

作者: Snails_Tin | 来源:发表于2021-05-21 11:05 被阅读0次

    来自APP Android端自动化测试初学者的笔记,写的不对的地方大家多多指教哦

    在之前的脚本中,我们都把构造driver实例对象的数据(即Desired Capabilities)写在业务代码中,如下所示:

    (以下所有内容使用PageObject模式,以微博 V10.12.0做为例子,)

    def start(self):
            caps = {"platformName": "Android",
                    "deviceName": "U4AIUKFAL7W4MJLR",
                    "platforVersion": "9",
                    "appPackage": "com.sina.weibo",
                    "appActivity": "com.sina.weibo.SplashActivity",
                    "autoGrantPermissions": "true",
                    "automationName": "UiAutomator2"
                    "noReset": True
                    }
    
            self.driver = webdriver.Remote("<http://localhost:4723/wd/hub>", caps)
    
    

    将数据写在业务代码中,如果换手机后需要修改代码,这样对于项目的维护是比较不方便的,所以将这些配置信息专门写在配置文件中,方便调用和修改。

    可以将desired_caps文件存在再config文件夹中,如下:

    image.png

    desired_caps.yaml文件中的Capabilities数据如下:

    platformName: Android
    platformVersion: '9'
    deviceName: U4AIUKFAL7W4MJLR
    appActivity: com.sina.weibo.SplashActivity
    appPackage: com.sina.weibo
    automationName: UiAutomator2
    autoGrantPermissions: true
    noReset: true
    url: 127.0.0.1(这里如果使用localhost会报错)
    port: 4723
    
    

    读取desired_caps.yaml文件,构造driver的函数:

    class AppStart:
        def app_start(self):
            # 从desired_caps.yaml读取driver配置数据
            caps = open(r"E:\\\\study\\\\Fork\\\\WeiboDemo\\\\Weibo\\\\config\\\\desired_caps.yaml", 'r')
            data = yaml.load(caps, Loader=yaml.FullLoader)
    
            desired_caps = {'platformName': data['platformName'],
                            'platformVersion': data['platformVersion'],
                            'deviceName': data['deviceName'],
                            'appPackage': data['appPackage'],
                            'appActivity': data['appActivity'],
                            'automationName': data['automationName'],
                            'autoGrantPermissions': data['autoGrantPermissions'],
                            'noReset': data['noReset']}
    
            self.driver = webdriver.Remote('http://' + str(data['url']) + ':' + str(data['port']) + '/wd/hub', desired_caps)
            self.driver.implicitly_wait(10)
            return LoginPage(self.driver)
    
    

    相关文章

      网友评论

        本文标题:python+appium+pytest自动化测试-yaml文件

        本文链接:https://www.haomeiwen.com/subject/uqcwjltx.html