- 博客(100)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注

原创 通过pytest-yaml-allure实现UI和接口数据驱动自动化
pytest-yaml-allure是一个强大的pytest插件,它允许我们直接从YAML文件中读取测试用例并执行。同时,结合Allure报告工具,我们可以生成详细、美观的测试报告,方便团队成员查看和分析测试结果。同时实现所有的底层驱动能力统一封装一个抽象类,如:request,uiautomator2,Selenium,ocr,adb,qdb,ssh,opencv,minicap,飞书通知,文本转语音,图片处理,canoe,pcan,doip,uds等。
2021-11-27 11:45:01
2192

原创 python+opencv图像处理之边缘检测车道线识别
python+opencv图像处理之边缘检测车道线识别1.自行安装python和opencv2.导入我们要使用的相关库import cv2from matplotlib import pyplot as pltimport numpy as np3.我们使用以下图片做本次项目原图img = cv2.imread("lu.png") # 读入图片print(img.shape) # 查看属性#plt.imshow(gray_image) # matplotlib中show函数#pl
2021-11-03 13:29:01
3688

原创 python+opencv判断开关或按钮的状态
python+opencv判断开关或按钮的状态前言:前期我们说过移动端定位问题(使用adb 坐标,使用uiautomator2,opencv获取坐标的方法)今天我们讲一下关于判断一个开关或者按键的状态。opencv真的是一个非常强大的模块,大家可以多学一下,大佬请忽略1 . 第一步安装opencv,大家自行安装2. 第二步导入opencvimprot cv23.学习过opencv的同学应该知道其中有一个获取像素值的方法,今天我们就用到这个方法来判断某个地点的状态4.既然使用像素值来判断某个点
2021-09-14 11:13:35
4511
3

原创 python +opencv 根据图片定位进行UI自动化
python +opencv 进行移动端UI自动化前言:做过移动端ui自动化的小伙伴,就会发现很多控件的元素是一样的或者是找不到的,为了解决这个痛点,于是通过图片灰度处理返回坐标x,y找到控件的位置。再结合pytest+接口+UI断言整体项目思路。1.接下来我们主要说一下基于opencv图片识别寻找控件坐标,pytest和接口不会的同学请看我的接口和pytest文章2. 我们使用两个图,一个是移动端截图,一个是控件的图,如下:接下来我们直接上代码import cv2import osi
2021-07-23 10:35:20
3649
1

原创 python +pytest 最强自动化
python +pytest 最强自动化pytest 是测试最牛的一个测试框架,废话不多说,直接上干货。1 .Pytest核心功能:非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考。能够支持简单的单元测试和复杂的功能测试。支持参数化。能够执行全部测试用例,也可以挑选部分测试用例执行,并能重复执行失败的用例。支持并发执行,还能运行由nose, unittest编写的测试用例。方便、简单的断言方式。能够生成标准的Junit XML格式的测试结果。具有很多第三方插件,并且可以自定义
2021-04-10 17:59:21
1843
5

原创 python 基于Opencv图像对比
python 基于Opencv图像对比opencv就不介绍了,直接上代码# -*- coding: utf-8 -*-from skimage.metrics import structural_similarityimport imutilsimport cv2# 加载两张图片并将他们转换为灰度imageA = cv2.imread(r"home.png")imageB = cv2.imread(r"home1.png")grayA = cv2.cvtColor(imageA, cv2
2021-03-29 13:24:29
1843
2

原创 python + request 接口自动化
python + request 接口自动化环境语言要求安装pythonpip install requestrequest简介request库 是urllib2 模块的升级版,平时我们要做接口自动化更多的会使用request库get请求和post请求import requestsurl = "https://www.baidu.com/"response = request.get(url)#发送get请求print(response)import requestsurl = "
2021-02-02 18:03:48
704
1

原创 python + uiautomator2 中文使用细则
python uiautomator2自动化uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库环境配置要求adb 下载http://pan.baidu.com/s/1mgGkNZM电脑中添加adb的path值python 3x 下载地址:https://www.python.org/电脑中添加adb的path值1 .安装uiautomator2 打开cmd:pip install --pre uiautomator2pip install pi
2021-02-02 16:58:51
1602
原创 SOME/IP协议中 **Events**、**Fields** 和 **Methods** 与CAPL触发机制的对应关系及实现方法:
实际开发中应根据具体协议定义(参考ARXML描述文件)严格匹配ServiceID、MethodID和EventID。
2025-03-10 14:18:59
921
原创 Python Web开发新选择:FastAPI框架详细教程
Web站点Web API测试平台持续集成工具自动生成API文档FastAPI以其现代化的设计和强大的功能,成为了Python Web开发的新选择。本文提供了详细的示例,帮助你快速上手FastAPI,并在你的项目中发挥其强大的能力。希望这能帮助你快速上手FastAPI,并在你的项目中有效地使用它。
2024-12-06 17:15:33
1138
原创 Python 队列的使用:掌握先进先出的数据结构
通过queue模块,Python提供了强大的队列操作功能,特别适合于多线程环境。无论是简单的数据存储还是复杂的任务调度,队列都是一个不可或缺的工具。希望本文能帮助你掌握Python队列的使用方法,并在你的项目中有效地应用它们。
2024-12-04 17:22:58
475
原创 Click:构建Python命令行界面的利器
Click是一个Python包,它允许开发者以最少的代码创建出美观、功能丰富的命令行界面(CLI)。它以其高度的可配置性、合理的默认设置以及简洁的API而受到广泛欢迎。本文将详细介绍Click的核心API组件,并提供示例代码,帮助你快速掌握Click的基本用法。
2024-12-04 17:19:11
721
原创 Python性能优化:懒加载与其他高级技巧
懒加载是一种设计模式,它推迟了对象的初始化直到其被实际需要的时候。这种方式可以提高程序的启动速度,减少内存消耗,并在某些情况下提高性能。
2024-11-19 09:59:43
435
原创 使用Python和Vosk库实现语音识别
Python作为一种强大的编程语言,拥有丰富的库和框架,可以方便地实现语音识别功能。SpeechRecognition库是Python中一个简单易用的语音识别模块,支持多种语音识别服务,包括Google Speech Recognition、CMU Sphinx等。对于中文,下载中文语音模型,并将其解压到主程序文件夹下,将文件夹重命名为“model”。例如,使用“xxx.mp3”文件进行识别进行测试,都能得到不错的识别效果。Vosk是一个开源的语音识别工具,支持多种语言,并且可以离线工作。
2024-11-05 16:37:12
1509
原创 doipclient +udsoncan实现以太网诊断,doip刷写升级
doipclient 是一个纯 Python 3 的诊断通过互联网(DoIP)客户端库,可用于通过汽车以太网与现代电子控制单元(ECUs)通信。它从短期同步客户端的角度实现了 ISO-13400(2019 年版)中的大部分功能。主要用途是作为 udsoncan_ 库的传输层实现。文档需求Python 3.6 或更高版本安装Python-udsoncan该项目是使用Python 3编写的统一诊断服务(UDS)协议的实现,该协议由ISO 14229标准定义。
2024-11-05 14:10:15
949
原创 获取每个页面的元素,并写入json
想法:如何去记住每个页面的元素,如何实现不同页面的导航,如何从主页面遍历每一个页面的每一个元素。3.记录每个页面的元素。1.创建数据结构存储。
2024-10-17 15:42:52
433
原创 python创建树状图
想法:如何去记住每个页面的元素,如何实现不同页面的导航,如何从主页面遍历每一个页面的每一个元素。2.树状图正好是我们想要的结构体。1.创建数据结构存储。
2024-10-17 15:30:53
605
原创 opencv级联分类器实现人脸识别
级联分类器(Cascade Classifier)是一种基于Haar特征的对象检测算法,首先需要手动的去训练自己的模型,如人脸识别官网有训练好的,可以直接拿来用。
2024-10-08 17:59:14
553
原创 python 通过提取声音的特征做对比
安装必要的Python库,如librosa(用于音频和音乐分析)、numpy(数学运算)、scipy(信号处理)、matplotlib(绘图)。
2024-08-15 14:17:53
761
原创 python监听环境内是否有声音
首先使用pyaudio打开麦克风,并开始录音。然后使用一个while循环来不断读取麦克风录取的音频数据,然后使用numpy来分析音频数据是否有声音。当检测到有声音时,会打印"有声音"并退出循环。最后关闭录音流和释放资源。
2024-08-14 14:25:54
940
原创 python DoIPClient详解
DoIPClient 是 doipclient 库中的一个核心类,用于实现诊断通过 IP(DoIP)协议与汽车电子控制单元(ECU)进行通信。
2024-06-28 17:31:30
2001
1
原创 python udsoncan 详解
UDS是一种用于汽车诊断的标准化通信协议,它定义了一系列的服务和流程,用于ECU(电子控制单元)的诊断和通信。udsoncan 库支持通过CAN(Controller Area Network)和DoIP(Diagnostic over IP)等不同的传输层与ECU进行通信。udsoncan 支持多种类型的连接,包括基于CAN的连接和基于DoIP的连接。udsoncan 提供了一个客户端类,用于创建UDS客户端实例,通过这个实例可以调用不同的UDS服务。UDS定义了一系列的服务,用于执行不同的诊断任务。
2024-06-28 17:29:00
1407
原创 python向类中添加新的方法
1. 直接在类定义中添加方法如果你正在定义类,你可以直接在类定义中添加新的方法:2. 使用类属性添加方法你可以使用类属性来添加一个方法,这个方法可以在类的实例上调用:3. 使用类装饰器添加方法类装饰器可以在定义类之后修改类,包括添加方法:4. 动态添加方法到类的实例如果你想要给类的实例添加方法,而不是类本身,你可以这样做:
2024-06-28 17:22:13
881
原创 python如何把一个函数的返回值,当成这个函数的参数值
递归是一种函数自己调用自己的方法。在递归调用中,你可以将前一次调用的返回值作为下一次调用的参数。在某些情况下,你可能想要延迟函数的计算直到实际需要结果时。这可以通过闭包实现。有时候,一个函数的返回值可以是另一个函数,这个返回的函数可以接收参数。在循环中,你可以存储函数的返回值,并将其作为下一次循环的参数。高阶函数是指接收另一个函数作为参数或返回一个函数的函数。
2024-06-28 17:19:12
640
原创 liunx打开谷歌报错
这个错误信息表明你尝试以root用户身份运行Chrome浏览器,但是没有使用–no-sandbox参数来禁用沙箱模式。出于安全考虑,Chrome默认不允许以root用户运行,因为这可能会使攻击者能够利用浏览器中的漏洞来获得系统级的访问权限。沙箱(Sandbox)是一种安全机制,它为运行的进程提供了一个隔离的环境,以限制可能的恶意行为对系统的影响。在用户空间中运行的程序,即使拥有root权限,也不应该绕过沙箱。退出root用户,以普通用户身份运行Chrome。
2024-06-25 10:09:56
2045
原创 python-doipclient 源文档翻译
doipclient 是一个纯 Python 3 的诊断通过互联网(DoIP)客户端库,可用于通过汽车以太网与现代电子控制单元(ECUs)通信。它从短期同步客户端的角度实现了 ISO-13400(2019 年版)中的大部分功能。主要用途是作为 udsoncan 库的传输层实现。Python 3.6 或更高版本。
2024-06-06 17:02:10
843
1
原创 安卓自动化之minicap截图
当我们运行程序的时候就会在当前目录生成一个图片received_image.jpg,这个时候我们就完成了截图啦,但是这个图片实时更新的我们的其他程序是没有办法去读取图片的,这个时候就需要我们去截图啦,什么还要去截图,太麻烦了吧,不,准确的来说只是copy一下啦,截图就是copy一下,谁能有我截图快,快如电,嗖嗖嗖的。本人天下第一快,NO,我说的是程序,经过计算我们截图加opencv找图然后在模拟点击只需250毫秒,嘎嘎快。6480x960@6480x960 是我们安卓设备的屏幕像素。
2024-06-05 14:41:52
1732
1
原创 python在不改变类的基础上,从外面添加新的方法
types.MethodType允许你将一个函数转换为一个方法,然后将其绑定到类上。类装饰器是一种在定义后修改类的方式,可以在类定义后添加方法。直接给类的字典添加方法是一种更简单直接的方式。
2024-06-05 14:19:37
328
原创 python如何快速的判断一个key在json的第几层呢,并修改其value值
【代码】python如何快速的判断一个key在json的第几层呢,并修改其value值。
2024-06-05 14:11:24
306
原创 python 线程threading
在运行程序的时候主程序,如何卡住了下面的程序就无法运行,这个时候我们就需要引入多线程threading。我们在写的方法中可能是一个死循环,获取是其他循环,在主程序运行结束或想结束线程,如何操作呢。
2024-05-20 16:50:37
252
原创 使用Pytest进行数据驱动测试的详细指南
2.pytest 如何把 python 代码,转换成 pytest 测试用例(又称 item)?1.pytest 如何收集到用例的?
2024-05-11 15:03:00
336
原创 关于python内置inspect
然而,当我们通过类的实例访问 my_method 时,得到的是一个绑定方法,而不是方法描述符,所以 inspect.ismethoddescriptor() 返回 False。需要注意的是,这个方法返回 True 的对象不会是方法(通过实例访问)、类、函数或内置函数,因为这些类型都已经被其他 inspect 模块中的函数覆盖了。在上面的代码中,我们检查了 len 函数(一个内置函数)、my_function(一个自定义函数)以及列表对象 my_list 的 append 方法(一个内置方法)。
2024-05-11 14:42:59
960
原创 python 根据参数不同,调用不同的类和方法
如果你的类实现了相同的接口(即它们都有相同的方法),你可以使用策略模式。策略模式定义了一系列的算法,并将每一个算法封装起来,使它们可以互相替换。策略模式使得算法可以独立于使用它的客户端变化。创建一个字典,其中键是参数值或参数值对应的字符串,值是对应的类。然后,你可以根据参数从字典中获取类,并创建实例或调用其方法。工厂函数或方法可以根据传入的参数返回不同的类实例。这种方法更灵活,允许你在返回实例之前进行额外的逻辑处理。
2024-03-20 18:15:26
595
1
python 多线程,多进程实现UIautomator2模拟点击同时监测信号
2022-07-20
python ssh执行刷机回显
2022-06-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人