APP移动端自动化测试框架

本文介绍通过python实现APP自动化的框架,对通讯录软件进行测试,文末有实操源码。

具体业务逻辑可基于框架补充。

预备知识:

APP移动端自动化基础及appium环境搭建

 appium元素定位

APP自动化测试框架

框架功能:

业务功能封装、测试用例封装、测试包管理、截图出来、断言处理、日志获取、测试报告生成、测试驱动、数据配置 

项目目录 

 

如下部分,截图为教学案例,因没有教学案例所用APP安装包,实操部分,使用夜神模拟器自带的通讯录软件进行操作。

baseView

封装元素基本操作

class BaseView(object):
    def __init__(self,driver):
        self.driver=driver

    def find_element(self,*loc):
        return self.driver.find_element(*loc)

    def find_elemets(self,*loc):
        return self.find_elemets(*loc)

    def get_window_size(self):
        return self.driver.get_windows_size()

    def swipe(self,start_x,start_y,end_x,end_y,duration):
        return self.driver.swipe(self,start_x,start_y,end_x,end_y,duration)


common_fun

定义一些页面元素/相关操作

desired_caps

APP设备相关信息及连接

from appium import webdriver
import yaml

import logging
import logging.config
import os
CON_LOG='../config/log/conf'


def appium_desired():
    """
    yaml是一种简洁的非标记语言,以数据为中心,使用空白,分行组织数据
    :return:
    """
    with open('../config/config.yaml','r',encoding='utf-8')as file:
        data=yaml.load(file)
    #创建设备信息
    desired_caps={}
    desired_caps['platformName']=data['platformName']
    desired_caps['platformVersion']=data['platformVersion'] # #在手机设置,关于平板电脑可以找到版本
    desired_caps['deviceName']=data['deviceName'] #模拟器上设备的名称 在cmd下用adb devices显示的地址
    desired_caps['appPackage']=data['appPackage']#通讯录包名
    desired_caps['appActivity']=data['appActivity']#app活动名

    #连接
    driver=webdriver.Remote(data['url'],desired_caps)#连接的是appium
    driver.implicitly_wait(5)

  
    return driver





myunit

 初始化和结束测试固件

import unittest
from common.desired_caps import appium_desired
import logging
from time import sleep
class StartEnd(unittest.TestCase):
    def setUp(self):
        logging.info("---------------setup-------------")
        self.driver=appium_desired()

    def tearDown(self):
        logging.info("---------------tearDown---------")
        sleep(5)
        self.driver.close_app()

yaml文件

配置信息文件

platformName: Android
platformVersion: 7.1.2
deviceName: 127.0.0.1:62001
appPackage: com.android.contacts
appActivity: .activities.PeopleActivity
url: http://127.0.0.1:4723/wd/hub

account.csv文件

测试数据文件

 

loginView

业务逻辑封装

 

 

 

test_login 

测试用例组织

 run.py

执行入口,包含测试报告生成

 初级水平,可入面试,深层次的,需要继续学习。

通讯录软件

实操运行结果

 运行结果一条通过一条不通过

测试报告

 源码:GitHub - 2504973175/API_UIAuto: APP移动端UI自动化

总结:APP移动端自动化与webUI自动化很像,只是一些基础的知识不同,如appium使用,元素定位相关,但selenium的使用是类似的。

各种自动化测试框架,都大同小异,甚至包括接口自动化测试。

框架只是入门,能够实战落地,并在工作中运用,提高测试效率才是根本。

如何结合实践,修改框架,如何封装业务逻辑,以及框架的优化,会更考验能力。

猜你喜欢

转载自blog.csdn.net/seanyang_/article/details/125033190