- 博客(42)
- 收藏
- 关注
原创 【pytest框架源码分析五】pytest插件的注册流程
对比可以看到这些文件中都有实现,其中mark,setuonly,setupplan中的实现方法都加了@pytest.hookimpl(tryfirst=True),按照之前介绍的原则,后加的先执行,加了tryfirst的先执行,这里的执行顺序为setupplan,setuponly,mark,cacheprovider,…这里可以看到,其先取了下对应的接口方法有无opts参数,如果没有,则判断一下方法是否是以pytest_开头的,如果是,则添加opts参数。这个main方法,最重要的有两步,第一步是。
2025-03-19 17:22:50
910
原创 【pytest框架源码分析四】pluggy源码分析之hook执行
如果没有异常,则继续执行send()方法,这一步大都会抛出异常,因为函数中只会有一个yield,如果这边不抛出异常,说明函数中有两个yeild,后面会提示报错"has second yield"。接下来和上面类似,取teardowns中的内容,这里多个判断isinstance(teardown, tuple),主要和上面的处理有关,整体是一致的,有异常抛出异常,无异常则继续执行。hook_impls:hook的impl列表,impl中包括插件,插件的方法及其配置,一个方法一个impl。
2025-03-02 14:24:13
696
原创 【pytest框架源码分析三】pluggy源码分析之hook注册调用流程
我们这边还用之前的例子,来介绍下插件的注册调用流程。注册方法中比较重要的就是实例化了一个hookimpl对象,并且把它添加到hook中,具体看就是添加到_hookimpls的list中(整体在我们上面添加的HookCaller下)。pluggy的hook调用,最重要的就是使用了__call__魔法函数,这个函数能够在我们调用实例时,自动调用这个函数,无需自己手动调用。即我们在执行pm.hook.pluggy_test(arg1=1)的时候调用的_multicall方法执行插件方法。执行方法就是最下面这行。
2025-03-01 14:29:25
888
原创 【pytest框架源码分析二】pluggy源码分析之add_hookspecs和register
接下来是具体的方法,定义了一个names的list,然后dir(module_or_class) 查看我们入参模块或者类的所有属性和方法(dir()内置函数,可查看所有属性和方法,注意这里是属性名和方法名,是str类型的,不是直接的方法),然后进入parse_hookspec_opts(module_or_class, name)方法。这里可以看出初始化pm后,先add_hookspecs,再register具体的实现,调用时,未打印sepc类中的内容,只打印了impl类中的内容,并且后注册的先执行。
2025-02-28 17:40:48
885
原创 【pytest框架源码分析一】pluggy源码分析之hook常用方法
这是一个装饰器类,其中主要的实现就是__call__下方的setattr_hookspec_opts方法,除去一个if判断,主要的操作是 setattr(func, self.project_name + “_spec”, opts),即给我们的方法加一个属性,属性名为self.project_name + “_spec”,value为上面定义的opts,里面更具体的属性则为默认值。tryfirst的放在后面,trylast的放在前面,否则放在最前面的tryfirst的前一个。具体参数意义我们后面再看。
2025-02-25 21:16:18
424
原创 pytest框架源码解析一
方法内部创建了一个pluginmanager的对象,然后以此为入参创建了一个config的对象,并且把args,plugins和dir(当前文件路径-即运行主方法的文件路径)都存到config对象中去。方法中先是判断了args是不是None(若是none,则再取一下命令行中的参数),是不是路径参数(若是路径类型则转成字符串),是不是 不是list(如果不是则抛出异常)。_.py下,入参有两个,args和plugins,这边我们都是没有传的(但是有默认值),返回值为int类型的退出码,一般成功了退出码为0。
2025-02-24 15:05:08
769
原创 【Vue】前端记录点
1.行内元素居中,想要让行内元素(如 <span> 或 <a>)在其父容器中居中2.块级元素居中使用flex布局使用grid布局。
2025-02-20 19:53:28
272
原创 【Vue3】简单的前端页面编写
这边我们参考一般的后台系统,一个大页面下,有多个子页面。最后我们再编写一个简单的子页面,即上方展示的表格,去elementUI处找一个合适的拷贝下:https://element-plus.org/zh-CN/component/table.html。我们创建完的Vue3工程默认是把页面一分为二的,这边想写个页面平铺整个页面,所以我们把这个样式去掉,这里主要是main.css在生效。当然这个页面还很粗糙,也没有真正的后台数据,后面我们写一下简单的后台系统,让数据从后台返回,并且把页面优化并丰富下。
2025-02-20 17:04:48
1408
原创 VUE3环境搭建
最近准备用Vue编写一点前端页面,我在前端一直是个小白,之前用的Vue2写了几个页面,现在已经是VUE3了,重新安装下环境开始。
2025-02-16 23:14:13
1270
原创 【数据处理】使用python收集网络数据--爬虫基础
我们经常需要获取大量的网络数据用于分析,靠人工获取效率太低,所以用代码获取成为大多数人的主要选择,这里简单介绍下使用python进行网络数据爬取的方法。
2025-02-12 09:59:57
777
原创 【python自动化六】UI自动化基础-selenium的使用
selenium是目前用得比较多的UI自动化测试框架,支持java,python等多种语言,目前我们就选用selenium来做UI自动化。
2024-12-23 23:29:49
1424
原创 【python自动化五】接口自动化基础--requests的使用
python的接口请求可以用requests库,这个介绍就不多说了,网上说得很详细。接下来直接记录下如何使用(当然也不限于自动化的使用)
2024-12-08 19:58:25
2119
原创 【python自动化四】日志打印
1.当日志文件达到设定的最大值时,RotatingFileHandler会自动将当前日志文件切分为一个新的文件,并继续向新文件中写入日志消息,保证了单个日志文件不至于过大。主要就是打印了时间、文件名、行号、方法名、日志级别、具体日志信息,个人认为这还是比较全面的,当然如果涉及到其它例如多线程之类的,可根据自己的需要选取打印信息。当日志文件数量达到设定值后,最旧的日志文件会被删除,从而保持日志文件数量的控制。然后我们设置我们自己的日志handler,一个是输出到文件的,一个是输出到控制台的。
2024-12-07 21:05:50
883
1
原创 dbeaver安装
下载后直接双击安装即可,一直下一步即可。这里有选择安装的组件,其中有include java这个选项,如果你已经安装了jdk,就不需要再安装了,如果没有安装,则需要勾选上。数据库常用的管理工具就是navicat,页面简洁大方,且易上手,唯一不好的就是要收费,个人使用的话可以用dbeaver,一款开源的数据库管理工具。下载地址:https://dbeaver.io/download/直接下载这个windows(installer)其他页面则没什么特殊的,一直默认即可。
2024-12-06 20:37:00
628
原创 【服务器监控】grafana+Prometheus+node exporter详细部署文档
grafana:看板工具,所有采集的性能数据都会展示在这个看板上,官网:linkPrometheus: 监控系统,数据的采集、存储、查询等主要功能都是在它这里,参考文档:linknode_exporter:其是Prometheus的一个采集组件,可以用来采集机器上的数据,并暴露接口给Prometheus,以此将数据传过去。这是prometheus官网的架构图,可以参考这个看一下。
2024-12-06 15:55:19
3141
原创 【最新】linux安装docker并配置加速源
我这边之前本地创建了个虚拟机,linux系统的,用于部署服务器。有时安装一些常用工具或者中间件,还是用docker安装方便,而且docker还有编排服务等功能,实际使用中还是会省不少事的,这里记录下安装docker的过程。
2024-12-05 13:55:47
1430
原创 xshell安装使用
平时连接linux机器用得最多的就是xshell,用习惯了,这里记录下。切换到用户身份验证,输入用户名和密码(也可以先不输,连接的时候再输入)点完成到这个页面,直接点“后来”,不需要输入name和email。弹出会话选项,点击新建,在弹窗中输入名称、主机ip和端口号。这个安装过程没什么特殊的,安装完成后这里显示个人运行。点击确定按键,并在会话框页面点击该名称,并点击连接。在主机密钥页面点击接受并保存。
2024-12-05 11:25:35
238
原创 notepadd++安装与添加插件
notepad官网地址: https://notepad-plus.en.softonic.com/下载后直接安装即可。
2024-12-04 15:27:56
1832
原创 【python自动化三】allure测试报告优化
前文中讲了如何集成allure测试报告,但生成的测试报告比较简单可以看到无论是主页还是具体用例页面,内容都比较少,无法看到更具体的内容,这里我们丰富一下测试报告。
2024-12-04 14:29:42
1118
原创 【python自动化二】pytest集成allure生成测试报告
pytest本身不会直接生成测试报告,而allure是一种生成测试报告的公共插件,可与多种测试框架配合生成测试报告,本文介绍下如何集成allure生成测试报告。
2024-12-04 11:31:29
1210
原创 jdk安装
因为我对jdk版本没有特殊要求,这里就直接下载jdk23了,下载一个windows版本的安装包。不过appium好像只支持jdk8的,这个后面再看,要是需要,卸载掉重装就可以了。由于是新装的电脑,上面还没有安装java环境,这里记录下jdk的安装配置。和老版本不同,不需要再安装jre,也不需要再配置环境变量。打开cmd命令行,检查下有没有安装成功。直接下一步即可,选一下安装路径。直接双击exe文件开始安装。
2024-12-03 17:00:21
259
原创 【python自动化一】pytest的基础使用
和多数自动化测试框架一样,pytest也支持在类中增加setup和teardown方法,直接上个例子在类中我添加了方法和类的setup和teardown方法这里可以看到其执行顺序为fill:#333;color:#333;color:#333;fill:none;
2024-12-03 15:34:27
1620
原创 linux问题记录
解决办法:计算机->管理->服务和应用程序->服务,将Vmware相关服务都启动,然后将虚拟机关机重新开机即可。最后一个VMware Workstation Server我这边启动不起来,但是也不影响,虚拟机可以正常启动了。1. 无法连接 MKS: 套接字连接尝试次数太多;
2024-11-10 18:05:54
203
原创 rocky linux详细安装过程
这里选择redhat,因为rocky linux是基于red linux的,这里我vmware版本有点低了,只能选择linux7版本的(主要是最新vmware17版本,我的win7老系统支持不了)Centos已经停止维护,我们这里安装一个rocky linux,其也是基于red hat的开源linux系统,也算是与Centos同宗同源了,个人使用可以作为Centos的替代品。这里把声卡和打印机移除掉,没什么用,这里处理器核数和内存就不修改了,我的机器比较老,本身配置不行,就不分配额外的资源了。
2024-11-06 22:18:15
2931
1
原创 vmware下载
吐槽:很多软件没有国内的源,访问下载都贼慢,实在太难受了,而且vmware下载页面,我进入几次下载页面竟然不展示可下载的产品,惊了,都准备放弃了,从别的入口进入又好了,下载个东西太难了,还是越简单越好,直接把下载链接放出来最好。这里还需要完善下个人信息,包括地址、邮编什么的,这里实在太卡了,就不返回截图了,填写完会返回这个页面,继续点击下载就行。我这边因为是windows系统,就直接下载Vmware Workstation Pro 了。这边点击下载还需要勾选下左上角的选项,然后点击下载,
2024-11-05 23:05:51
835
1
原创 dolphinscheduler无权限操作临时生成的python文件
最近在搞环境,在搭建dolphinchedualer,dolphinchedualer中配置了一个python的节点任务,任务执行时,生成了python的临时文件,但是执行时报碰到一个报Permission denied的错误,排查发现dolphinchedualer是直接用docker安装的,docker中未安装python环境,安装完python环境后,还需要在dolphinchedualer中配置这个环境信息,并在任务中引用。暂时先记录下,后续再补充具体内容。
2024-11-04 22:25:56
563
原创 mysql
使用dbeaver备份mysql数据库时,备份的时候是可以的,恢复的时候不行,报"C:\Users\***\DBeaverData\drivers\clients\mysql_8\win\mysql.exe(in ***): CreateProcess error=193, %1不是有效的Win32应用程序"这个是因为dbeaver下的mysql.exe不兼容当前系统,换一个自己安装的mysql下的mysql.exe就可以。
2024-10-28 21:42:44
243
原创 测试方面的思考
页面自动化好处就是能测试端到端,前端页面、后端服务器都测试到了,坏处就是执行效率比较低,一个稍微复杂点的场景可能就需要几分钟了,而且不稳定,网络、页面弹窗都有可能引起失败(当然可以通过一些手段规避),一些测试团队可能只有一两个人专职自动化,其它人简单培训下就开始按照固定的模板开始写了,这种情况下,其实演进一个长期稳定、高效的自动化是比较困难的。接口自动化呢,这个执行速度就快很多,大多情况下都不需要测试框架自带的并行方法,其实顺序执行就可以了(接口特别多的另当别论),而且稳定性比页面自动化高一大截。
2024-10-27 22:44:50
395
原创 Postman记录
csdn上面提示资源已存在,只能放在百度云上面了,没有会员下载速度慢点,网上其它乱七八糟的资源谨慎下载,不少加了个皮,不知道里面有什么。链接:https://pan.baidu.com/s/1337U389uOpPdl4vb08nnxQ。无法定位程序输入点discardvirtualmemory与动态链接库kernel32.dll上。网上查了下,说是修复过后也没有,应该还是win7版本太老,不支持了。又到网上找了下历史版本,postman官网半天没找到。本地没有postman,这里新下载一个。
2024-10-27 20:52:35
194
原创 pip相关记录
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple 即可。腾讯:http://mirrors.cloud.tencent.com/pypi/simple。清华大学:https://pypi.tuna.tsinghua.edu.cn/simple。中科大:https://pypi.mirrors.ustc.edu.cn/simple/阿里云:http://mirrors.aliyun.com/pypi/simple/
2024-10-26 01:15:19
449
原创 网络基础知识
这里值得注意一下的是ip地址和网段的配置计算等,在实际操作中,可能要定位环境问题,首先要看的网络通不通,查找ip地址及其网段就是最基础的。一般定位网络不通问题,就可以先看看主机到网关通不通,如果通,再看网关到对方网络通不通;我们常说的网络二三层就是数据链路层和网络层,网络层对应的就是ip地址,数据链路层对应的是mac地址。网络的一些知识可以在这里学习一下,讲得深入浅出,还是挺好理解的。网段即为ip地址与子网掩码相与,即可得到。网段即为ip地址与子网掩码相与,即可得到。以我个人的电脑分配的ip地址为例。
2024-10-24 22:33:03
614
原创 pycharm安装
然后重启电脑后,打开pycharm,直接报错pycharm64.exe - 无法找到入口 无法定位程序输入点 CreateAppContainerProfile 于。查了一下,这个版本不适配win7,win7还是老了啊,但是个人电脑用习惯了win7,还是舍不得换win10(win10上可以直接装这个最新的版本)安装之前记得将之前的版本卸载掉,放在互相影响。),我们自己使用下载一个社区版即可(免费)这里注意选择社区版,专业版是需要密钥的。这里重新下载了2023.1的版本。下载完成后双击安装即可。
2024-10-24 20:35:48
460
Jmeter高级编程技巧与测试实现
2024-11-10
基于JMeter的性能测试方法与实践指南
2024-11-10
使用RobotFramework测试HTTP接口的方法及其环境配置指南
2024-11-10
测试需求分析与测试用例设计:控件、方法及评审要点详解
2024-10-26
软件开发与测试模型解析及其应用场景
2024-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人