首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Appium系列(二十七)再次对于封装后的stf代码进行改造

Appium系列(二十七)再次对于封装后的stf代码进行改造

作者头像
雷子
发布于 2021-05-27 07:07:44
发布于 2021-05-27 07:07:44
45800
代码可运行
举报
运行总次数:0
代码可运行
前言

更正下,上一篇文章应该是系列的第二十六篇。本文是第二十七篇。上一篇Appium系列(二十五)封装操作stf的方法我们对stf的方法进行一次封装,但是这次封装完毕呢,在对于我们的测试代码来说,还是不能一次使用的。中间还得需要处理,那么我们应该怎么办呢。本文带你揭秘。

正文

我们在思考,我们要把方法打造成为一个更加自动化,那么我们申请设备的,我们要做成可以配置的设备。根据配置的,我们可以自动申请设备,进行测试,测试完毕后,我们归还设备即可。那么我们需要对于我们的现有的方法做改造。

01

改造原来的adbtool

1.增加远程连接设备操作

2.增加释放远程设备操作

如何实现呢,很简单,我们可以根据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
adb connect **
adb disconnect **

来处理,具体如何实现呢。代码展示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def connectphone(connecturl:str)->bool:
    os.popen("adb connect %s" % connecturl)
    reslut = os.popen("adb devices").read()
    devices = str(reslut).split("\n")
    for i in devices[1:]:
        if i!="" and i.split("\t")[0].split(" ")[0] ==connecturl:
            return True
    return False
def unconnectphone(connecturl:str):
    os.popen("adb disconnect %s"%connecturl)

02

定义设备连接信息的配置化

我们就是实现如何远程连接设备,操作设备了,为了方便呢,我们把要测试的设备呢,存在json文件中,格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "devices": ["192.168.56.107:5555"]
}

03

实现设备连接释放设备公共方法

有了链接设备,断开设备,测试需要设备配置文件,那么我们接下来就是封装方法。

主要提供:链接测试所需设备,断开测试设备。

注:方法我暂时存放在了StfTestPhoneUntil.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class OpearPhoneTestPhone(object):
    '''操作设备'''
    def __init__(self):
        self.path=os.path.join(os.path.join(os.getcwd(),'common'),'stfconnect.json')
        self.json=json.load(self.path)
        self.devices=self.json['devices']
        self.stfphone=StfPhoneOpear()
    '''申请设备'''
    def opearphone(self)->bool:
        all_list_phone = self.stfphone.getstflist()
        if len(self.devices)>0:
            for device in all_list_phone:
                if device in self.devices and device['user'] is False :
                    connect_result=connectphone(device['remoteConnectUrl'])
                    if connect_result:
                        continue
            return True
        else:
            return  False
    '''释放设备'''
    def realese(self):
        all_list_phone=self.stfphone.getstflist()
        if len(self.devices) > 0:
            for device in all_list_phone:
                if device in self.devices and device['user'] is True:
                    connecturl = device['remoteConnectUrl']
                    unconnectphone(connecturl)
                    self.stfphone.removeroneophen(device['serial'])

封装好了方法,以及可以根据配置文件申请设备,接下来就可以在把这里做进到测试框架。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python3入门与实践(四): 面向对象
==当通过 student.name获取变量值的时候,首先会查找实例变量里有没有name属性,如果有则返回,如果没有就会去类变量里找,如果还是没有则会报错==
Meet相识
2018/09/12
3860
python之面向对象编程
1、面向对象介绍: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 2、 面向对象的几个特性: class类: 一个类即对一类拥有相同属性的对象的抽象,
coders
2018/01/04
1.7K0
python之面向对象编程
8.python面向对象编程
基本概念 Class 类 一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象的都具备的属性(variables(data))、共同的方法 Object 对象 一个对象即是一个类的实例化后实例,一个类必须经过实例化后方可在程序中调用,一个类可以实例化多个对象,每个对象亦可以有不同的属性,就像人类是指所有人,每个人是指具体的对象,人与人之前有共性,亦有不同 Encapsulation 封装 在类中对数据的赋值、内部调用对外部用户是透明的,这使类变成了一个胶囊或容器,里面包含着类的数据
zhang_derek
2018/04/11
6700
8.python面向对象编程
Python编程作业五:面向对象编程
这段代码定义了一个名为 "Student" 的类,表示学生对象。该类具有以下属性和方法:
Francek Chen
2025/01/22
1040
Python编程作业五:面向对象编程
图解python | 面向对象编程
教程地址:http://www.showmeai.tech/tutorials/56
ShowMeAI
2022/02/23
6850
图解python | 面向对象编程
30天拿下Python之面向对象编程
在上一节,我们介绍了Python的函数,包括:函数的定义、函数的调用、参数的传递、lambda函数等内容。在本节中,我们将介绍Python的面向对象编程。面向对象编程(Object-Oriented Programming, 即OOP)是一种编程范型,它以对象为基础,将数据和操作封装在一个类(Class)中。在Python中,类是一种定义对象结构和行为的模板,而对象则是类的实例。类定义了一个新的类型,用于创建具有特定属性和方法的对象。类是面向对象编程的核心,它允许程序员使用对象来组织代码和复用代码。
用户6256742
2024/06/22
1210
面向对象编程进阶
1、   静态方法staticmethod 只是名义上归类管理,实际上再静态方法里访问不了类和实例中的任何属性 定义: 通过@staticmethod装饰器即可以把其装饰的方法变为一个静态方法,普通的
coders
2018/01/04
2K0
python基础 面向对象编程
面向对象编程的基本思想   类和实例     类用于定义抽象类型     实例根据类的定义创建出来 python 定义类并创建实例   在python 中,通过class 关键字定义,以Person 为例   定义一个person 类如下:     class Person(object):       pass python 创建实例属性    如何让每个实例拥有各自不同的属性。       xiaoming = Person()       xiaoming.name = 'Xiao Ming'    
用户1197315
2018/04/03
6000
python学习笔记:第16天 面向对象
目录 ⼀、类的成员介绍: 二、类的成员-变量 三、类的成员-方法 四、类的成员-属性 五、私有属性 ⼀、类的成员介绍: ⾸先, 什么是类的成员. 很简单. 我么能在类中写什么? 写的内容就是成员. 到
py3study
2020/01/19
3820
Python3 面向对象编程基础
面向对象编程——Object Oriented Programming,简称 OOP,是一种程序设计思想。 OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
嵌入式视觉
2022/09/05
2590
07. 面向对象编程(一)
在Python中,面向对象编程(Object-Oriented Programming,简称OOP)是一种程序设计范式,它通过创建类(Class)和对象(Object)来组织代码。而面向对象编程有几个基本的特性:封装,继承,多态。
有一只柴犬
2024/01/25
1770
07. 面向对象编程(一)
【愚公系列】2021年12月 Python教学课程 20-面向对象编程-类和对象
类,英文名字 Class,有“类别”,“分类”,“聚类”的意思。必须牢记类是抽象 的模板,用来描述具有相同属性和方法的对象的集合,比如 Animal 类。而实例是根据 类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 能不同。
愚公搬代码
2021/12/15
2750
【愚公系列】2021年12月 Python教学课程 20-面向对象编程-类和对象
面向对象编程-类
面向对象编程OOP (object-oriented programming)是最有效的软件编写方法之一,面向对象是利用“类”和“对象”来创建各种模拟来实现对真实世界的描述,使用面向对象编程的原因一方面试因为它可以使程序的维护和扩展变得简单, 并且可以大大提高程序开发效率,面向对象的程序可以让人更加理解代码的逻辑。面向对象的核心特性之一:Class 类 一个类即是对一类拥有相同属性的对象的抽象,蓝图,原型。在类中定义了这些对象的都具备的属性,共同的方法。根据类来创建对象被称为实例化,这能够使用类的实例。 类
用户1679793
2018/04/28
9550
面向对象编程-类
Python进阶教程笔记(一)面向对象编程
在Python中,通过class关键字定义一个类,比如我们需要定义一个人的类。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义:
Lemon黄
2020/10/30
4200
解锁面向对象编程:Python 类与对象详解
python从设计之初就是一门面向对象的语言,它提供一些语言特性支持面向对象编程。那么第一个问题就是什么是面向对象。
Yui_
2025/01/17
2520
Python面向对象编程-完整版
面向对象是一种编程范式。范式是指一组方法论。编程范式是一组如何组织代码的方法论。编程范式指的是软件工程中的一种方法学。
1846122963
2018/07/26
1.4K0
教师妹学python之七:面向对象编程
面向对象编程(OOP)是一种通过将相关属性和行为绑定到单个对象中来构造程序的方法。从概念上讲,对象就像系统的组成部分,可以将程序想像成工厂的流水线,在流水线的每个步骤中,系统组件都会处理一些材料,最终将原材料转换为成品。
互联网金融打杂
2022/08/01
5440
教师妹学python之七:面向对象编程
Python的面向对象
面向对象 目的: 写出有意义的面向对象的代码,其作用就是封装代码 定义时注意: 命名规范 Student、StudentPages 类体不能什么都不写,要写pass 定义示例: class Student(): # 开始类体的编写 name = '' age = 0 def print_file(): print('age = '+str(age)) stu = Stud
ZONGLYN
2019/08/08
5290
史上最全 Python 面向对象编程
在多函数程序中,许多重要的数据被放置在全局数据区,这样它们可以被所有的函数访问。每个函数都可以具有它们自己的局部数据,将某些功能代码封装到函数中,日后便无需重复编写,仅调用函数即可。从代码的组织形式来看就是根据业务逻辑从上到下垒代码 。
马哥linux运维
2019/04/01
6440
史上最全 Python 面向对象编程
面向对象编程进阶
通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法
hankleo
2020/09/17
9010
相关推荐
Python3入门与实践(四): 面向对象
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验