- 博客(93)
- 资源 (2)
- 收藏
- 关注

原创 pytest +uiautomator2+weditor app自动化从零开始
首先dw()判断元素是否存在,不存在不需要进行后续操作,element_existence方法适用于断言元素是否存在,element_info_existence方式适用于判断元素在点击后是否发生了属性变化来断言,element_text_existence适用于判断元素文本和预期结果是否一致。删除了3个场景,留下2个场景,每个场景加了2种断言方式f1(ex):f5(ex):,测试用例是test_zhanghao():test_luyin():,f1(ex):f5(ex):内部实现了断言并且返回结果。
2023-12-05 11:50:16
1673
4

原创 第三代api自动化测试框架使用教程(pytest+allure+sql+yaml)
db_test2,数据库对象,需要先在config.py配置里面写上数据库连接数据,然后去mysql_.py里面生成数据库对象,然后把对象名写在db_list=[‘db_test’,‘db_test2’]上。只有在db_list里面的数据库才可以进行断言使用。MYSQL_CONFIG:MYSQL_CONFIG_1,MYSQL_CONFIG_2数据库配置,使用数据库操作时使用,需要几个就写几个。file:使用引号包起来的python文件对象,作为接口文件格式参数发送(复制file里面的数据在外面加上引号)
2023-03-17 21:15:00
8680
26

原创 pytest+yaml框架环境配置和使用教程
''1、每条用例前置sql,请求参数sql,断言sql2、requests二次封装,自动获取ip和header信息3、allure动态方法封装(标题、描述、步骤)4、钉钉机器人发生allure报告公司局域网内可以访问5、log日志记录每个重要参数6、多接口参数依赖(接口返回提取,请求使用)7、token信息全局前置写入配置文件8、用例文件支持多目录多文件运行,支持排除目录或者文件9、定位运行的用例属于哪个文件10、支持随机几位数字或者字符串11、提供mock接口。......
2022-07-18 15:32:35
21264
17

原创 python fastapi 入门教程,每个案例都使用postman进行测试写的接口
官方示例代码运行命令:uvicorn test:app --reload注意:运行命令app前面那个是文件位置,官方的文件名叫main,要以实际的文件名为准,不然找不到app测试无r参数情况测试有r参数情况报错了注意:重点在发起请求的时候希望请求参数格式可是现在会报错要这样才会成功,可是这不是我们想要的结果按照官方的解决办法,在我这有点问题告诉我确实一个参数(可能版本有啥问题把)缺少我就先补上这个参数试试,发现就能正常使用了最终测试gt=0的意思,看源码
2022-06-20 09:38:27
21967
8

原创 pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计,完结撒花),源码提供,视频教程
1.第一步我先写一个环境配置文件,按自己公司环境配置,我这边只有测试和生产环境,配置协议,域名和headers。后续我只有提供地址和请求参数就可以发起接口访问2.我写一个读取文件的类,准备用于处理文件相关,现在只有读取yaml问的方法,后续准备写读取execl、execl和yaml用例数据转换,用例数据处理。方法测试:3.环境配置总开关,一开始我是想把环境这个参数放着请求时填写的,最后发现比较麻烦,一切以简单明了为好4.写一个读取并处理配置文件信息的方法,使用我之前写的读取ymal的方法,把
2022-06-14 11:24:12
37845
108

原创 基于pytest搭建接口自动化测试框架,提供源码
基于pytest测试框架实现场景接口自动化和单接口自动化,支持参数驱动单接口执行,支持多接口依赖参数,支持配置全局变量,支持日志记录,数据库,yaml操作,二次封装requests库,支持allure报告直接打开......
2022-01-14 11:34:52
50924
37
原创 车载测试-推送文件达到内存不足脚本
测试时总有一些场景需要内存不足才能触发,脚本可以推送一些文件到车机里面直到内存不足。测试完成后记得清除掉这些文件,不然无法进行安装apk。
2024-02-29 10:21:23
479
1
原创 车载测试-常用adb命令和使用场景
有些系统日志开发需要有指定目录的日志,直接使用pull下拉,然后压缩上传到bug附件里面: adb pull /data/xx/ D:\xx\xx。adb shell input swipe 100 100 100 100 1000 //在 100 100 位置长按 1000毫秒。4)删除包:adb shell rm /system/app/xxxxxx/xxxxxx.apk。2)获取此要卸载的包名的地址:adb shell pm path 包名。-d 允许进行将见状,也就是安装的比手机上带的版本低。
2024-02-28 18:29:47
3440
原创 车载测试-本地相册 常用脚本(自定义图片尺寸,文件大量生成)
2、测试需要5000个文件操作,手动去复制比较繁琐。可以使用脚本自动复制生成指定数量的文件,也可以指定文件夹内删除文件数量。1、不同尺寸的图片效果展示。脚本可以自定义尺寸大小生成新图片方便测试。
2024-02-28 17:59:44
461
原创 flask+pyinstaller实现mock接口,并打包到exe运行使用postman验证
这2个地址可以访问的地址,如果处于同一个局域网下面,别人的电脑可以用http://192.168.3.100:7979来访问。这里是打包运行exe程序时带cmd窗口,有修改ico图标和重新命名。命令执行目录要和py文件在一个目录里面。打包后会生成一个mock.exe。下面的是一些接口参数说明。
2024-02-04 11:29:48
1910
原创 python selenium chrome114版本之后环境配置和携带缓存打开chrome
在网上各种查资料很费劲,找了很久才找到有用的信息,其中在带缓存打开的时候一直失败,过了一段时间发现突然好了没改代码。这是pycharm的bug,清除下它的缓存(我这个是2019版本的,新版本估计不一样,但是也是清除缓存)这种关闭谷歌之后再次打开会出现这个弹窗,这和网上的那些关弹窗的方法不是一个东西,需要修改配置文件才可以。我这边实现了2种启动浏览器的方式,一种是普通的不带缓存啥也没有,一种是带缓存的。网上找到的资料,我现在安装的是120版本的,这个资料是可行的。这里有个大佬的博客解决了这个问题。
2023-12-14 12:04:40
2043
原创 weditor报错wself.wrapped.flush() AttributeError: ‘MockStdout‘ object has no attribute ‘flush‘解决方法
原文地址https://github.com/alibaba/web-editor/issues/131。修改ipyshell-console.py文件,这个文件路径就在报错信息里面。
2023-12-04 17:43:24
1852
1
原创 qt实现一个安卓测试小工具
上面2个是打包的生成的不用管main.py 主要是逻辑代码gui.spec 是打包使用的adb.ui是qt设计师生成的ui界面,设置属性配合代码操作
2023-11-28 22:15:00
1683
原创 Pyinstaller打包多个py文件和qt设计师的ui文件,带ico图标
读取不到ui文件解决方法来自的指点目录结构这几个打马赛克是打包时出现的文件目录,先去掉gui.py是pyqt写的程序,是打包的主体,这里引用了adb.ui ,config.py,main.py文件adb.ui 是qt设计师设计的界面config.py是一些配置项目,比如配置抓取日志时的储存路径和车机里面存日志的路径i.ico是图标图片main.py是一些脚本方法,比如抓日志,启动app,清除缓存等output.txt是一个普通文本。
2023-11-01 16:15:48
2354
原创 adb 查询app占用的cup和内存
改完后查看模式是否改变,总共8个,cpu0到7,一般改其中一个小核的模式,该大核其他的小核会一起变更模式,8个一般改个cpu0和cpu4就全改了,如果没改,就把没改的单个改掉。然后把CPU工作模式设置为performance模式。ps -ef | grep 包名(支持模糊搜索)查看当前CPU的工作模式。根据进程查询cpu和内存。先进入shell 模式。先查找出app的pid。
2023-06-28 16:57:09
5769
原创 车载usb相关内容测试内容
• 全屏查看:点击图片,进入全屏模式,隐藏顶栏、底栏、DOCK栏,返回键和底栏菜单键可隐藏和显示。• 记忆当前播放的曲目和相关信息,在下次播放时能够恢复并继续播放.• 当前拔出的设备为正在播放的设备时,停止播放,退出当前源。• 循环播放,当前这首歌播放完了播放当前列表的下一首。• 随机播放,当前这首歌播放完了随机播放列表的一首歌。• 当前拔出的设备不是当前播放的设备时,保持当前播放。
2023-06-12 23:15:00
893
原创 python uiautomator2 环境搭建和基本使用
可以百度或者看看这个https://blog.youkuaiyun.com/weixin_37600187/article/details/127987889。
2023-04-13 21:35:18
1557
原创 mysql实用篇
右连接是左向外连接的反向连接,将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。左连接是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。desc表示字段按降序排序。其中asc为默认值,排序不需要where。创建表之前选择在哪个数据库下面建表。别名字段会吧查询结果变为别名,实用。查询字段字符中间有“个”字的数据。id在0-1之前,包含0和1。查询字段末尾有‘屁’字的数据。在新建的表里面插入一条数据。查询字段以‘李’开头的数据。
2023-02-09 19:52:05
825
原创 jmeter实用篇
在信息头加上这个content-type application/json;charset=UTF-8就是json格式。通过响应数据分析失败原因:token缺失,去添加请求头。再建立一个普通的http取样器。json和表单格式参数填写。填写变量名和变量提取表达式。需要网上查,列举下怎么用。新建一个普通的线程组。现在就可以请求成功了。Params参数填写。在一个线程中可以使用。
2023-02-09 15:48:04
786
原创 postman实用篇
参数格式一:url后问号拼接( Params格式)使用{{}},只能使用储存的变量信息。先点击小图标,在点击add添加环境。参数格式二:headers参数。设置变量信息并且保存环境信息。参数格式四:json参数。查看环境里面的变量信息。参数格式三:表单参数。环境使用,多环境切换。
2023-02-09 12:31:03
353
原创 2022/9/5开始第三版接口自动化(yaml用例)测试框架(记录搭建过程)(这个废弃了)
header’,‘data’,'assert_expression’这三个字段是需要参数依赖的,要让它们被读取处理时先转成字符格式,方便。这个模板不代表最终模板,后续可能还有改动。二、配置哪些字段需要字符化。一、yaml用例设计。
2022-09-05 17:06:07
17666
13
原创 python openpyxl 读取xlsx后缀文件方法
源码#存放公共方法import openpyxldef row_column_read_datas(file,sheet,row=1,column=1): wk=openpyxl.load_workbook(file)#打开文件 sh=wk[sheet] max_column=sh.max_column max_row=sh.max_row list=[] row_list=[] for j in range(row,max_row+1): #选
2022-07-21 11:25:15
15303
原创 测开学习篇-html
2.有序列表和无序列表3.div分区4.语义标签div和span对于div和span这两个元素,不少新手也不知道它们之间有什么区别,使用起来也很随便。因此,这里有必要简单介绍一下。div和span没有任何语义,正是因为没有语义,这两个标签一般都是配合CSS来定义元素 样式的。div和span区别如下:(1 ) div是块元素,可以包含任何块元素和行内元素,不会与其他元素位于同一行;span 是行内元素,可以与其他行内元素位于同一行。(2 ) div常用于页面中较大块的结构划分,然后配合CSS来操
2022-07-14 14:43:51
15415
原创 python 操作微信订阅号(2022.7.1)
这个代码要丢到自己的云服务器里面至于flask的liunx环境什么的就自行百度了设置的2个核心参数,一个url,一个token。token在代码里面设置就行了,代码会处理加密
2022-07-01 16:27:20
15141
原创 apifox 针对测试使用教程(持续更新)
默认进来是实例项目保存后点击这个项目,进入到该项目项目概述环境是所有项目可以用,我给这个项目配置一个该项目使用的测试环境新建环境(fastapi接口专用环境)配置域名后续只需要写接口地址即可注意:这里的保存不是运行接口保存完成后才可以运行点击运行后到当前页面,可以正式发起请求(这里写掉了一个/)运行结果先复制一个正确的用例,然后改改参数变成一个错误的用例用例记得要保存啊......
2022-06-30 10:42:32
23130
9
原创 python操作钉钉机器人推送消息
群里面设置使用关键词,必须要携带这个关键词才能调用这个机器人下一步,这个就是操作这个钉钉机器人的接口allure测试报告 关键词一定要写在 content字段里面测试
2022-06-29 15:18:46
17351
原创 基于fastapi实现6个接口(token拦截, 2个业务流程,接口参数依赖校验)已经通过postman测试,记录部署服务器和windows,用于pytest接口自动化框架的接口测试对象
fastapi入门教程测试总结果
2022-06-22 13:55:51
19286
1
原创 python生成器+pytest实现参数化
定义:生成器是由函数+yield关键字创造出来的写法遇到问题:pytest执行没找到用例(未以test开头命名文件)选择三个执行一个不执行选择二个执行二个不执行
2022-06-10 11:30:18
18167
原创 python pyinstaller “单个” py文件打包
安装pyinstallerpip install pyinstaller获取打包py文件的位置(文件路径全英文)打包命令pyinstaller -F F:\script\csdn\shua_csdn.py打包完成后最终文件位置在dict下面,这个文件可以在没有python环境的电脑下运行.........
2022-06-08 11:14:56
17735
原创 谷歌版本升级重新安装配置chromedriver
查看谷歌版本下载对应chromeDriver驱动chromeDriver下载地址找打对应的大版本下载下载自己需要的版本,win只有32位的移动到python文件夹下面覆盖之前的版本(如果是第一次直接丢进去就行)替换前保存selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome
2022-06-07 11:38:31
17780
1
原创 jmeter if控制器、仅一次控制器
if控制器新增线程组使用函数助手取消勾选这个测试仅一次控制器测试先把线程组的循环改为2次然后清掉之前的重新运行
2022-03-07 15:21:38
17140
1
原创 jmeter 解决中文格式问题
String s=new String(prev.getResponseData(),"UTF-8"); char aChar; int len= s.length(); StringBuffer outBuffer=new StringBuffer(len); for(int x =0; x <len;){ aChar= s.charAt(x++); if(aChar=='\\'){..
2022-03-07 14:06:10
17270
原创 charles 过滤器-简单过滤和设置过滤
一、简单过滤二、设置过滤打开位置选择筛选添加协议,域名,端口等信息,可以只填一个信息或者多个信息只会抓取指定域名的包,可以指定多个排除筛选(操作和选择筛选一样)被指定的域名会被排除掉不会抓取,可以排除多个......
2022-03-07 11:48:32
21985
原创 charles 节流弱网
打开位置部分参数介绍:bandwidth —— 带宽,即上行、下行数据传输速度utilisation —— 带宽可用率,大部分modern是100%round-trip latency —— 第一个请求的时延MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况Releability —— 指连接的可靠性,用于模拟网络不稳定Stability —— 连接稳定性1.勾选Enable Throttling才能进行弱网节流操作2.设置需要节流的对象
2022-03-07 10:37:18
17711
原创 django drf 常用命令和常见问题
常用命令创建项目 django-admin startproject 项目名创建app django-admin startapp app名项目启动 python manage.py runserver 127.0.0.1:8080python manage.py makemigrations # 创建数据库迁移文件python manage.py migrate # 根据数据库迁移文件生成对应SQL语句并执行创建超级用户 python manage.py createsupe
2022-02-28 11:51:05
26873
4
原创 django drf 实现只有超级用户才能注册账号(涉及自定义权限permissions,获取token信息解析token信息)
django drf 实现只有超级用户才能注册账号编写注册序列化器编写注册视图配置二级路由,一级路由和之前登录一样测试注册视图自定义权限测试自定义权限编写注册序列化器和之前的登录序列化器写在一个地方from django.contrib.auth import get_user_modelUser = get_user_model()class RegisterSerializers(serializers.ModelSerializer): '''增加用户的序列化器''' cl
2022-02-18 10:47:41
25970
pytest+yaml+allure+requests 框架源码带注释版本
2022-06-28
drf 配置跨域不生效也不报错
2022-08-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人