appium+python实现UI测试之四(测试框架)

6 篇文章 1 订阅
6 篇文章 1 订阅

在搭建测试框加之前,先弄个小例子初步测试一下,试试效果。在网上找的例子,代码如下:
--------------------------test_case(update.py)--------------------------

-- coding: utf-8 --

from appium import webdriver
import os
import time

desired_caps = dict()
desired_caps[‘platformName’] = ‘Android’
desired_caps[‘platformVersion’] = ‘7.0’
desired_caps[‘deviceName’] = ‘Android Emulator’
desired_caps[‘appPackage’] = ‘com.android.calculator2’
desired_caps[‘appActivity’] = ‘.Calculator’

driver = webdriver.Remote(‘http://localhost:4723/wd/hub’, desired_caps)

driver.find_element_by_name(“1”).click()

driver.find_element_by_name(“5”).click()

driver.find_element_by_name(“9”).click()

driver.find_element_by_name(“delete”).click()

driver.find_element_by_name(“9”).click()

driver.find_element_by_name(“5”).click()

driver.find_element_by_name("+").click()

driver.find_element_by_name(“6”).click()

driver.find_element_by_name("=").click()

运行起来测试问题了,现在可以弄个框架,python自带有unittest用这个还是很方便的。
借用了同事弄好的框加拿来修改了一下,整体框架结构如下图:

-- coding: utf-8 --

import unittest

from appium import webdriver
import os,time
class Update(unittest.TestCase):
@classmethod
def setUpClass(cls):
os.system(“adb disconnect”)
time.sleep(5)
os.system(“adb connect 192.168.28.155”)
os.system(“adb push /Users/zhh/Downloads/full_h03v57c2k-ota-20181023052850.zip /sdcard/update.zip”)
time.sleep(150)

    desired_caps = dict()
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '7.0'
    desired_caps['deviceName'] = '192.168.28.155:5555'
    desired_caps['appPackage'] = 'com.beeboxes.systemupgrade'
    desired_caps['appActivity'] = '.SystemUpgradeActivity'
    cls.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    # wait for 30s
    # cls.driver.implicitly_wait(30)

def test_update(self):
    self.driver.find_element_by_id("com.beeboxes.systemupgrade:id/button_localupgrade").click()
    self.assertEqual(self.driver.find_element_by_id("android:id/alertTitle").text,("Android 系统更新").decode("utf-8"))

@classmethod
def tearDownClass(cls):
    cls.driver.quit()

--------------------------test_case--------------------------
--------------------------run_test(all_test.py)----------------------------

-- coding: utf-8 --

import unittest
import HTMLTestRunner
import os

import common.login as login

import common.driver as Driver

from test_case.test_person_manager import Person

from test_case.test_device_manager import DeviceManager

from test_case.test_device_group import DeviceGroup

from HTMLTestRunner import HTMLTestRunner

from common.readconfig import ReadConfig

from test_case.update import Update
from test_case.test_basic_setting import BasicSet

#获取文件夹路径
proDir = os.getcwd()
#找到配置文件

configPath = os.path.join(proDir,“data\config.ini”)

config=ReadConfig(configPath)

#create a new chrome session

driver=login.auth(config)

Driver.set_driver(driver)

#取测试结果路径
result_dir=os.path.join(proDir,“test_result”)

#加载测试类及方法

person_tests=unittest.TestLoader().loadTestsFromTestCase(Person)

device_tests=unittest.TestLoader().loadTestsFromTestCase(DeviceManager)

device_group_tests=unittest.TestLoader().loadTestsFromTestCase(DeviceGroup)

test_update = unittest.TestLoader().loadTestsFromTestCase(Update)
test_basic_setting = unittest.TestLoader().loadTestsFromTestCase(BasicSet)

#smoke测试需要加的testcase都写在此
smoke_tests=unittest.TestSuite([test_basic_setting])

#把smoke测试结果写入文件中
outfile=open(result_dir+"/SmokeTestReport.html",“wb+”)
runner = HTMLTestRunner.HTMLTestRunner(
stream=outfile,
title=‘Device Test Report’,
verbosity=2,
description=‘Smoke Tests’

                     )

runner.run(smoke_tests)

unittest.TextTestRunner().run(smoke_tests)

--------------------------run_test(all_test.py)----------------------------

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值