Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Appium系列(二十二)基于tidevice封装IOS的adb命令
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
雷子
2021/04/15
1.3K0
Appium系列(二十五)封装操作stf的方法
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
雷子
2021/04/29
1.4K0
Appium系列(二十五)封装操作stf的方法
基于Appium实现深度UI遍历工具(四)代码实现篇(上)
终于来到了代码编写的地方了,提前预告,所有代码都将放到github上面,作为我开源的项目,并且在以后会进行维护。文末我会贴上开源地址。
雷子
2022/05/21
1K0
基于Appium实现深度UI遍历工具(四)代码实现篇(上)
Appium系列(三十五)封装安卓获取性能数据
我们首先明确我们获取的性能数据。本文我们简单介绍下不同的性能指标的采集。
雷子
2021/07/06
8180
Appium系列(三十五)封装安卓获取性能数据
Appium系列(三十六)在用例中增加获取性能数据
我们应该如何去做呢,我们在用例执行前获取性能数据,在用例执行后获取测试数据。然后用例前后的内存差我们认为是执行过程中的cpu,内存的变化。
雷子
2021/07/06
4960
Appium系列(三十六)在用例中增加获取性能数据
Appium自动化(九)如何处理多设备的启动参数
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
雷子
2021/03/15
1.1K0
基于Appium实现UI遍历工具(五)代码实现篇(中)
主要封装了一些常用的方法,方便后续的调用,增加了隐形等待,让元素定位更加不受外在的影响。
雷子
2022/09/29
1K0
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
我们在上节课,通过自动化获取了apk的包名和activity。那么我们设备的deviceName和platformName是否可以通过自动化获取吗?本文带你解密。
雷子
2021/03/15
2K0
Appium自动化(十一)实现一个简单的登陆功能
在之前的文章,我们分享了一系列的文章,那么我们这次分享,找一个app为demo,进行简单的一个功能的测试,后续文章会围绕该app进行实战化讲解。
雷子
2021/03/12
8430
Appium自动化(十一)实现一个简单的登陆功能
带你用 Python 实现自动化群控设备
群控,相信大部分人都不会陌生!印象里是一台电脑控制多台设备完成一系列的操作,更多的人喜欢把它和 Hui 产绑定在一起!
AirPython
2020/08/15
1.3K0
Appium系列(十八)多设备并行执行测试用例
在上一篇文章--Appium系列(十七)将Appium服务端口号通过参数传递给测试用例,我们处理了通过参数传递给appium服务,那么这节课呢,我们要改造,改造成多设备并行执行测试用例。
雷子
2021/03/30
2K0
Appium系列(十八)多设备并行执行测试用例
Appium自动化(十四)引入分层化思想优化代码
在上一篇文章--Appium自动化(十三)引入ddt管理测试用例数据,由于代码的逐渐增加,原有的文件足够大,不利于维护,为了更好的维护呢,我们利用分层化的思想对于代码进行拆分,优化,便于后期的维护。
雷子
2021/03/30
4750
Appium自动化(十四)引入分层化思想优化代码
Appium自动化(十)如何控制多设备并行执行测试用例
Appium自动化(八)通过脚本自动化获取设备deviceName和platformVersion
雷子
2021/03/15
1.2K0
[1002]python+adb自动化获取手机信息
参考:https://blog.csdn.net/zhuohaiyy/article/details/80213516 https://blog.csdn.net/weixin_30699741/article/details/97539113
周小董
2021/06/24
1.2K0
Appium自动化(十三)引入ddt管理测试用例数据
在上一篇文章--Appium自动化(十二)Appium+unittest组织测试用例,来组织测试用例,那么用例的数据我们是否也可以统一管理呢,答案是可以的。
雷子
2021/03/15
4240
appium+python自动化59-多台设备并行
做android自动化的时候,启动一个appium服务,只能匹配一个手机去自动化执行。有时候想同一套代码,可以在不同的手机上执行,测下app在不同手机上兼容性。 这就需要启动多个appium服务了,并且android设备和appium要一一对应才行。
上海-悠悠
2018/07/25
6.1K1
appium+python自动化59-多台设备并行
Python 调用adb命令
subprocess包主要功能是执行外部命令(相对Python而言)。和shell类似。
AnRFDev
2021/02/01
4.6K0
[python][企业微信]企业微信自动打卡Python脚本,价值一万元的自动打卡脚本
[python][企业微信]企业微信自动打卡Python脚本 价值一万元的自动打卡脚本
landv
2020/05/12
4.3K0
安卓自动化之ADB操作
对于 Android 端的自动化测试,ADB 的重要性不言而喻,很多开源的自动化框架操作大都是利用 ADB 命令来完成。
吾非同
2020/10/26
1.7K0
安卓自动化之ADB操作
我的tkinter学习笔记3
这边就上面的知识,进行一个小工具开发。主要实现功能有快速查看设备名、包名和Activity.具体看实现的代码
用户6367961
2020/04/07
4580
相关推荐
Appium系列(二十二)基于tidevice封装IOS的adb命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验