- 博客(43)
- 收藏
- 关注
原创 pytest并发执行时token异常处理问题
代码是由之前的代码使用gpt生成的 ,针对token.json文件的锁好像无用,还是会导致登录频繁报错。这里改为对username的锁,保证同一时间同一账号只登录一次。另外,避免出现其他不稳定的情况,建议加上重试 --reruns 2。接前面加入钩子函数处理token复用的问题,只保证了用例的串联执行,我的部分测试用例中接入了通义千问的部分接口生成测试数据,七八个场景跑完差不多快要10分钟。这里还有个疑问,加上并发执行后,控制台打印的中文日志全变成了乱码,不明所以,后续有时间再看看怎么解决。
2024-06-14 15:28:00
754
原创 记录request库的部分封装
这里的super(Register, self).__init__(api_root_url, **kwargs)的作用是确保Register类的实例在创建时,不仅设置了自己的属性(如果有的话),还正确地初始化了从RestClient继承来的所有属性和进行了必要的配置设置。总的来说,这个RestClient类提供了一个方便的方法来发送HTTP请求,并记录请求的详细信息,方便调试和监控。request_log方法用于记录请求的详细信息,包括URL、HTTP方法、请求头、请求参数、请求体等。
2024-06-14 14:21:19
546
原创 记录pytest中场景执行的token异常处理问题
注册==>登录 这一步执行的非常快,每次都能成功,且账号和我后续用例的账号是一个账号。登录这里并没有修改token.json文件,即缓存对应账号的token值。这就导致我第二条用例使用同一账号登录时,报错登录频繁,被拦截。所有的用例都报获取不到token,方法改了又改,浪费半天时间还是没有发现任何问题。缓存机制添加的是600s,这里提示间隔1400s,很明显不太正常,第一个用例和第二个用例之间怎么可能差距这么大呢?,每个用例单独执行都很正常,但是批量执行时一直报错,token缓存处理也不生效。
2024-06-13 17:14:54
811
原创 pytest中token的一种处理方法
定义了一个get_or_refresh_token闭包,该闭包负责根据用户名获取或刷新token。虽然auth_tokens fixture在模块级别只实例化一次,但是它返回的闭包(get_or_refresh_token)能够对每个传入的用户名进行独立的操作,确保每个账号的token都是根据需要获取或刷新的。在某个场景中,各个接口经常需要使用到token,而且接口对频繁登录做了防抖,无法频繁调用。考虑了很多方法,发现总是有一些或多或少的弊端,这里在conftest中定义了一个钩子函数用于处理token。
2024-06-12 14:36:01
463
原创 pytest中一个场景测试的demo
allure.severity_level.BLOCKER:阻塞级别的问题,系统无法继续运行或测试无法继续。allure.severity_level.TRIVIAL:轻微的问题,几乎不影响系统功能,通常是最不紧急的。allure.severity_level.NORMAL:普通级别的问题,不影响主要功能,但需要解决。allure.severity_level.MINOR:次要级别的问题,影响较小,可以稍后处理。@allure.severity 是一个装饰器,用于设置测试用例的严重性级别。
2024-06-12 14:12:06
487
原创 git回滚项目至指定版本
这里回退至上一个版本 git reset --hard 版本号。若非对应分支,使用git checkout 分支名 切换分支。进入到项目目录地址,使用git log查看提交版本信息。再次推送即可 这里需要使用-f命令 强行推送。2.在pycharm中回滚项目。
2024-06-12 10:20:11
398
原创 pytest中失败用例重跑
配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures=2。下载rerunfailures插件包。
2024-06-11 09:32:40
498
原创 Allure在jenkins中无法显示的问题
Path需要选择相对路径的allure-report、allure-results。jenkins中使用allure生成报告需要注意工作环境和路径的配置。jenkins容器中已安装jdk和allure。
2024-06-04 17:41:21
472
原创 docker不删除容器更改其挂载目录
场景:docker搭建的jenkins通常需要配置很多开发环境,当要更换挂载目录,每次都需要删除容器重新运行,不在挂载目录的环境通常不会保留。3.更改config.v2.json 中的MountPoints信息。数据看起来比较乱,直接复制到在线解析中解析,方便找到需要更改的挂载目录。例如 我的jenkins容器的id是14b052d9faa2。备份一下,再把解析并更改的json文件粘贴过来即可。1.docker ps 查找容器id。2.进入该容器的配置文件中。
2024-05-24 14:41:38
544
原创 linux中安装sqlite包
在pycharm中写好代码,为让代码能在jenkins中构建并运行,linux中也需要安装所需包。下载pysqlite3仍然报错,缺少必要组件。下载并更新setuptools。
2024-05-24 10:47:02
280
原创 记录github小程序短视频系统的搭建过程
其中Basecontroller中的ffmpeg所在路径,需要自行下载ffmpeg。最后搭配其提供的api接口文档进行上传视频即可正常访问。大概涉及到这些代码块,进行更改即可。
2024-05-24 09:26:22
496
原创 docker搭建私有仓库并推送本地镜像
报错Get "https://1.94.143.44:5000/v2/": http: server gave HTTP response to HTTPS client。这里把本地的nginx镜像打包,docker tag nginx 自己的ip:5000/nginx:1.0。增加一行 "insecure-registries" : ["自己的ip:5000"]curl -XGET http://自己的ip:5000/v2/_catalog。注意这里也要配置daemon.json文件。
2024-05-22 11:13:42
1013
原创 记录docker ps查找指定容器的几个命令
1.docker ps | grep registry 查询包含registry的容器2.docker ps | grep -E "reigistry\s+" 开启正则匹配模式,匹配registry后面为空格的容器,若是匹配一整行可以这样写docker ps | grep -E "^([0-9a-f]{12})\s+registry\s+.*"这里,-E开启了 extended regular expressions,正则表达式\s+registryregistry\s+.*
2024-05-22 09:45:49
615
原创 关于pytest中用例名称使用中文乱码的解决
场景:使用@pytest.mark.parametrize装饰器为用例自定义名称时,运行显示乱码。1.在根目录 pytest.ini中增加一行代码。2.在conftest.py中加入钩子函数。
2024-05-21 17:18:43
356
原创 记录使用data.load_yaml加载yaml文件
解释一下:get_data 函数尝试从指定路径加载YAML文件。此时,pytest.skip(str(ex)) 将被调用,它会立即停止当前测试用例并标记为跳过,原因是异常的字符串表示(str(ex))。这样做的目的是在加载YAML文件失败时,防止测试继续执行并产生错误结果,而是以更友好的方式告知测试被跳过,原因是加载数据时遇到了问题。如果文件成功加载,函数会返回解析后的YAML数据。加载结果: yaml_data 是一个字典,其内容是从名为 data.load_yaml 的函数加载的YAML格式的数据。
2024-05-21 10:42:58
205
原创 k8s1.24+ dashboard不能自动生成token的问题
根据yaml文件配置内容创建更新资源对象,可以看到没有生成admin-token类似字眼。较早版本会自动生成secret,v1.28.2版本需要手动生成,执行命令即可。创建k8s-admin.yaml文件。
2024-05-17 13:30:52
371
原创 记录k8s中部署dashboard报错ImagePullBackOff
修改kubernetes-dashboard.yaml 文件,将kubernetes-dashboard容器镜像来源改为 mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.0。查看container服务日志信息,提示无法拉取k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1这个镜像。查看pod信息,能观察到在node1节点新创建了一个dashboard。手动拉取镜像超时,说明这个镜像源用不了,尝试换一个。
2024-05-17 11:49:01
341
原创 Vmware首次创建虚拟机配置ssh
2.桌面会有一个光盘文件,点击进去解压到桌面即可。我这里已经安装过了。1.虚拟机->安装VMware Tools。3.重启ssh服务并尝试连接。安装tools方便复制粘贴。3.按照步骤执行即可。4.安装完后重启系统。2.下载ssh相关包。
2024-05-16 13:56:15
352
原创 云服务器上部署Kubernetes集群(K8S)
该博客是centos系统,所以稍微有点区别结合另一篇博客一起参考。由于是ubuntu系统,参考两个博客配置。master节点:master。1.查看所有集群中所有pod。node节点:node1。禁用交换分区和防火墙。
2024-05-16 09:54:34
219
原创 使用unitest对redis连接做一个简单的单元测试
首先设置一个测试用的键值对,然后通过调用handle_redis_token()方法设置键值对,并使用断言语句确保设置后的值与预期值相等。首先设置一个测试用的键值对,然后通过调用handle_redis_token()方法获取键值,并使用断言语句确保获取的值与预期值相等。该方法为类级别的设置方法,用于在所有测试用例执行前进行环境准备。首先创建一个测试套件,将TestRedisDb类中的测试用例添加到套件中,然后创建一个测试运行器并运行测试套件。的类,用于简化与Redis数据库的交互操作。
2024-05-11 16:51:41
217
1
原创 pytest中直接参数传递和@pytest.mark.usefixtures的区别
在这种情况下,delete_register_user作为测试函数的一个参数直接被传递。@pytest.mark.usefixtures("delete_register_user") def test_register_user(self,delete_register_user )这两种前置delete_register_user有什么区别?在这两个例子中,delete_register_user都是一个fixture,它会在test_register_user测试函数运行之前被调用。
2024-05-11 16:32:25
250
1
原创 pytest使用装饰器@pytest.fixture实现前后置执行用例
1.@pytest.fixture定义的作用域大小关系:session > module > class > function。(1)scope表示的是被@pytest.fixture标记的方法的作用域。function(默认),class,(2)params:参数化(支持,列表[],元祖(),字典列表[{},{},{}],字典元祖({},{},{})(4)ids:当使用params参数化时,给每一个值设置一个变量名。(5)name:给表示的是被@pytest.fixture标记的方法取一个别名。
2024-05-10 16:35:37
148
原创 使用docker部署nginx并创建本地挂载目录
修改/newdir2/nginx/conf/conf.d/default.conf文件。拉取nginx镜像并启动nginx。复制配置文件到宿主机器。
2024-04-29 16:26:16
424
2
原创 ubuntu扩容分区
5、输入m 打开帮助,读这里的选项,我们就能够找到增加一个分区的,输入n,这里我们增加一个主分区,所有后面输入p,然后默认的从扇区编号41940992-62914559意思是将磁盘多余的扇区都分配出来。4、能看到整个sda磁盘30G,已经分配的/dev/sda5 还是之后19.5G的容量,这时候我们就可以把10G的磁盘空间分配给/home的空间,这里我们用逻辑卷的模式来进行。2、标红色的是我的根文件系统,可以看到这个文件系统已经使用了51%,共有19G的容量。扩完磁盘之后,再fdisk 看下磁盘的容量。
2024-04-29 16:22:09
143
原创 linux换源
进入到目录下 新建sources.list 将原来的备份 使用docker cp /newdir2/ containID:/etc/apt/目录下。cat /etc/issue 查看操作系统 百度搜索其国内源。用aptitude 代替 它是debian的包管理器。如果换源后 安装gcc等失败。apt-get update即可。环境:ubuntu18.04。
2024-04-29 16:18:30
449
原创 docker常用命令
p 3306:3306: 将容器的 3306 端口映射到宿主机的 3306 端口,允许外部程序通过宿主机的 3306 端口访问容器内的 MySQL 服务。-itd: 这个参数的作用是让容器以交互模式(-i)、伪终端模式(-t)运行,并且在后台以守护进程模式(-d)运行。--name mysql-test: 为容器指定一个名称,这里是 "mysql-test"docker system prune -a 删除所有未使用的镜像和容器。du -sh 查看内存大小 du -sh /newdir。
2024-04-29 16:17:07
106
原创 docker 迁移问题 Ubuntu
重启docker服务,就可以更新docker默认的镜像容器保存位置,特别注意,如果新的保存位置里拷贝了原来容器保存位置里的所有内容,那么镜像数据等也就迁移过来了。3.2 迁移/var/lib/docker目录下面的文件到 /home/docker。八、确定容器、镜像没问题后删除/var/lib/docker/目录中的文件。4.1 编辑 /etc/docker/daemon.json 文件。/newdir/docker --> docker的存储路径。迁移后一定要赋予权限!二、停止docker服务。
2024-04-29 16:15:36
302
原创 关于Ubuntu释放桌面环境占用内存
我的华为云服务器是从本地VMware迁移出去的服务器,由于是学习用的虚拟机所以还是搭建的带有桌面环境,后续更换至云主机后,因为规格比较小,发现桌面环境占用内存较大,所以考虑卸载桌面环境释放多余的内存。使用top命令,shift+m查看内存占用情况。三个gnome进程就23% ,无奈服务器只有2g,属实捉襟见肘。重启服务器,再次使用top命令查看内存占用信息。也可不重启,前提是需要杀死掉不需要的进程。6.清理安装gnome时候留下的缓存程序软件包。5.彻底卸载删除gnome的相关配置文件。
2024-04-29 14:22:32
364
原创 docker容器的备份和导入
一、场景:云主机规格较小,运行jenkins项目占用内存较大,考虑将其转移到规格更大的云主机中。4.使用scp命令传输文件至另一台服务器。3.查看镜像文件并保存为tar文件。1.查询容器id/名称并复制。2.打包容器为镜像文件。
2024-04-29 10:35:52
532
原创 关于清除swap分区的问题
一、场景:服务器运行应用过多,可用的系统内存不足时,数据会交换至swap分区,引起系统的卡顿,反应很慢。后续关掉了应用,系统内存使用占比下滑,但是swap used占比仍巨高。二、sawp分区的数据不会自动清除,需要手动刷新。使用top命令,按shift+M查看内存占用情况,swap剩余可用大小仅32760。三、解决方案,重启swap分区即可,但需要保证剩余系统内存大小>swap分区used大小。环境:华为云服务器、ubuntu18、规格:2核2G。再次查看即可看到swap分区占用内存已被释放。
2024-04-29 10:23:06
288
原创 关于Ubuntu部分版本使用sh命令执行脚本出现Syntax error: “(“ unexpected的错误
一、场景:脚本allow_ip_port.sh在机器1上使用sh命令正常执行,在机器2上执行报错Syntax error: "(" unexpected。在目录下使用./allwo_ip_port.sh 执行脚本或者bash allow_ip_port.sh都可以。环境:华为云服务器、机器1:ubuntu22.04、机器2:ubuntu18.04。通常是一个指向系统默认shell的符号链接,需要进一步排查。没啥区别都是ubuntu,除了版本不同以外。
2024-04-28 10:46:43
557
原创 python+flask自定义接口
问题一:运行时会默认是本地地址127.0.0.1,使用本机ip地址无法访问,将main.py中加入app.run(host=0.0.0.0,prot=8000)也无用,会一直是127.0.0.1。解决方案:在命令行中输入。四、先运行main.py,再执行一下test.py看看返回结果,返回如下则成功了。一、需求:对数据库进行简单的sql语句压测。这里自定义一个接口,用于插入表中。环境:华为云服务器、ubuntu、python3.8。即可指定端口,并可以访问ip。
2024-04-25 17:50:55
220
2
原创 记录Awvs-scan漏洞扫描工具的使用
二、 浏览器输入ip+13443启动登录页,启动页如下。云服务器部署可能会遇到无法访问的问题,将http改为https试试。4.运行change_credentials.sh,先输入账号再输入密码即可重置密码。3.输入cd /home/acunetix/.acunetix/。1.先查容器id,如下图容器id为60a53359d4bd。三、先在设置将语言改为中文(实际上只能部分功能显示中文)。问题一: 关于更改管理员密码后忘记,重置密码的问题。参考此地址,使用docker直接部署。一、使用docker部署。
2024-04-25 17:37:05
348
5
原创 记录实时监控系统hertzbeat的使用
在script后面增加查询命令,输出要和field数量保持一致,比如我增加sda_io Rate和sdb_io Rate,script可以追加这样的命令:iostat -d sda -x | awk 'NR==4{print $NF}';二、需求:目前大部分软件监控目的端都要安装Agent,比较麻烦,所以我找了下有没有不需要安装agent的工具,hertzbeat就是一款。找到需要自定义的地方,增加字段,我这里时监控sda和sdb两个磁盘的io占比,图中是我监控服务器的默认指标,可以自定义模板。
2024-04-25 13:30:22
652
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人