性能搞起来测试

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

2021-05-21  本文已影响0人  Snails_Tin

来自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)

上一篇下一篇

猜你喜欢

热点阅读