使用Appium自动化测试app(六)------实战篇4(unittest)

import unittest
import threading
from time import sleep
from appium import webdriver

server = 'http://localhost:4723/wd/hub'
# 连接设备参数
desired_caps = {
    'platformName': 'Android',
    'deviceName': 'emulator-5556',
    'appPackage': 'com.facebook.katana',
    'appActivity': '.LoginActivity',
    # 弹框默认同意
    'autoAcceptAlerts': 'True',
    'noReset': 'True',
}


class LoginTest(unittest.TestCase):
    # setUp()方法用于测试用例执行前的初始化工作. 如果用例中需要访问数据库, 可以在setUp中建立
    #  如果测试用例需要启动Appium服务, 需要在该方法中启动Appium服务
    def setUp(self):
        self.driver = webdriver.Remote(server, desired_caps)

    # tearDown()方法用于测试用例执行之后的善后工作, 如关闭数据库连接, 退出应用
    # 无论这个方法写在哪里都是最后执行的
    def tearDown(self):
        self.driver.quit()

    # 具体的测试用例, 必须要以test开头
    def test_start(self):
        x = self.driver.get_window_size()['width']
        y = self.driver.get_window_size()['height']
        while True:
            if 'Like button. Double tap and hold to react.' in self.driver.page_source:
                sleep(2)
                self.driver.find_element_by_accessibility_id('Like button. Double tap and hold to react.').click()
                sleep(2)
            self.driver.swipe(x * 0.5, y * 0.75, x * 0.5, y * 0.25, 500)
            sleep(2)


if __name__ == '__main__':
    # 构造测试集
    # loadTestsFromTestCase()根据给定的测试类,获取其中的所有测试方法,并返回一个测试套件
    suite = unittest.TestLoader().loadTestsFromTestCase(LoginTest)
    # unittest框架的TextTestRunner()类, 通过该类下面的run()方法来运行suite所组装的测试用例, 入参为suite测试套件
    # verbosity 参数可以为0,1,2 意思大致就是数字越大测试结果就信息就越全
    unittest.TextTestRunner(verbosity=2).run(suite)

以上这个示例,应该算是一种比较规范的测试脚本写法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她最爱橘了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值