- 博客(76)
- 收藏
- 关注

原创 pytest接口自动化框架搭建
目标:最终完成一个用jenkins集成或用django,达到一个自由灵活可复用的接口自动化测试框架一、设计思路-整体框架:接口自动化测试之框架搭建步骤——思路整理1.先搭建框架主干config:存放配置文件,如ini文件,可以用来保存配置各个环境的地址output:用来存放测试报告、日志等common:公共的方法,如,封装yaml操作相关的方法、excel相关操作方法等testcase:运行用例的脚本data:存放测试用例excel表、和转化为yaml格式的测试用例2.选用合适的单元测试框
2021-09-07 10:42:24
11333
34

原创 如何进行性能测试(在百度工作时日常压测总结)
如何做性能测试一、知道目标qps,看服务器需要多大的资源步骤:将线下配置与线上配置保持一致;编写压测方案;编写压测脚本-设置jmeter参数【线程数、常数吞吐量计时器、header、http请求、响应断言、聚合报告】开始运行;查看聚合报告,看错误率,90、95的响应时间,吞吐量;不通过,则进行排查问题:【1.查看cpu、内存是否达到瓶颈;2.查看数据库连接数、cpu、内存等是否达到瓶颈;3.或配合rd,通过trace组件来排查耗时较高的方法,以进行优化;】;经过优化或对服务资源调整,使达到
2021-04-04 21:48:30
6211
2
原创 pabot基本用法
的并行测试执行工具,用于加速测试运行,特别适用于大型测试套件。实现,可以同时在多个进程或机器上运行测试,显著减少执行时间。• 每个测试用例单独分配一个进程(适用于大量小测试)。会使用所有可用的 CPU 核心并行运行测试。• 每个测试用例独立运行,适用于大量小测试。• 允许不同进程共享变量(需在测试中使用。是 Robot Framework 的。• 4 个进程并行运行,最终合并报告。管理共享资源(如数据库、端口等)。• 使用 4 个进程并行运行。,适用于加速大型测试套件。,可显著减少执行时间!
2025-03-26 12:01:24
297
原创 CSS Selectors
纯CSS选择器功能强大,能够满足大多数UI自动化测试中的元素定位需求。通过理解元素的结构、属性和层级关系,您可以编写精准且高效的选择器来定位目标元素。使用data-*属性进行定位,因为它们通常用于存储自定义数据,且具有较高的唯一性。利用层级关系(如子选择器和相邻兄弟选择器)来缩小选择范围。尽量避免依赖文本内容进行定位,除非使用支持伪类的框架。如果您有更具体的HTML结构或遇到特定的问题,请提供更多细节,我可以为您提供更有针对性的帮助!
2025-03-01 21:38:58
825
原创 复杂场景使用xpath定位元素
记住:没有绝对稳定的定位方式,关键是要理解页面结构和元素特征,通常需要组合使用多种定位策略才能达到最佳效果。对于现代Web应用,建议配合CSS Selector和其他定位方式形成互补方案。
2025-01-31 16:35:15
401
原创 HTML中的元素(elements)
HTML(HyperText Markup Language)中的元素(elements)定义了网页的结构和内容。
2025-01-27 15:11:58
995
原创 nvidia-smi命令视图含义
Memory-Usage: GPU 内存的使用情况,这里是 0MiB / 24564MiB,表示没有内存正在使用,总内存为 24564 MiB。Pwr:Usage/Cap: 功耗状态,这里是 40W / 450W,表示 GPU 当前使用 40 瓦功率,最大容量为 450 瓦。GPU-Util: GPU 的利用率,这里是 0%,表示 GPU 当前没有负载。MIG M.: MIG(多实例 GPU)模式的状态,这里是 N/A,表示不适用。Fan: 风扇的速度,这里是 30%,表示风扇以 30% 的速度运行。
2024-09-09 16:47:04
866
原创 jmespath用法总结
JMESPath(JSON.MetaExpression Syntax)是一种查询和过滤JSON文档的表达式语言。JMESPath表达式可以提取、转换和计算JSON数据,以便于处理。JMESPath表达式由路径、过滤器和投影器组成,可以非常灵活地操作JSON数据。- JMESPath 支持条件表达式,类似于 Python 中的三元表达式。- JMESPath 允许你定义自定义函数来扩展其功能。- JMESPath 允许你使用正则表达式进行匹配。- JMESPath 允许你递归地搜索对象或数组。
2024-08-24 15:08:13
882
原创 GitHub Action Workflow
GitHub Actions 是一个持续集成和持续部署 (CI/CD) 平台,它允许您自动化构建、测试和部署您的项目。
2024-08-23 10:54:58
1183
原创 Conda
以上是Conda的一些核心操作和命令,它们覆盖了环境的创建、管理以及包的安装和更新等基本任务。Conda是一个开源的包管理和环境管理系统,广泛用于Python和其他数据科学相关的编程语言环境。这个命令会显示一个列表,包含了环境中安装的每个包的名称、版本和安装渠道。如果您需要查看特定环境中的包而不是当前激活的环境,可以在。以上步骤将帮助您将Conda的默认下载源更改为速度更快的国内镜像源,从而提高软件包的下载速度.以上步骤基于最新的搜索结果,适用于Windows系统中的Anaconda Prompt操作.
2024-08-16 14:50:06
894
原创 在Ubuntu 22.04上安装Docker最新版本
执行这些步骤后,Docker 和相关的组件应该会被完全卸载。如果你在卸载过程中遇到任何问题,可以尝试重新启动你的系统,然后再次执行卸载命令。以上步骤应该会在您的Ubuntu 22.04系统上成功安装Docker最新版本。安装完成后,您可以使用Docker命令来管理容器和镜像.如果上述方法都不奏效,您可以尝试使用国内的Docker镜像源。如果默认的GPG密钥源无法访问,您可以尝试使用其他可信的GPG密钥源。如果你想要卸载 Docker 以及相关的组件,你可以使用。注意:此步骤需要重新登录以使更改生效。
2024-07-09 10:37:24
1094
原创 准备GPU H20机器k8s环境时用到的链接
部署指南有道云笔记-记录:https://note.youdao.com/ynoteshare/index.html?id=fb78195ccdd6e3933262b84c67457737&type=note&_time=1719978023883NVIDIA相关NVIDIA Container Toolkit:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guid
2024-07-09 10:35:42
390
原创 构建自定义Tensorflow镜像时用到的链接地址整理
NVIDIA相关:NVIDIA CUDA镜像的docker hub:https://hub.docker.com/r/nvidia/cuda/tags?page=&page_size=&ordering=&name=12.4.1NVIDIA 构建的Tensorflow镜像包:https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/overview.htmlCUDA ToolKits 下载
2024-07-09 10:09:26
553
原创 强制删除命名空间(K8S 强制删除卡在Terminating状态的namespaces 记录)
参考:https://blog.youkuaiyun.com/lxy___/article/details/106644302。此时需要创建匿名用户的权限,命令如下。
2024-04-10 14:06:10
566
原创 理解OOMKilled
例如,一个拥有 8 GB 内存的节点,Kubernetes可能会运行 8 个容器,内存Request值为 1 GB。如果这些容器的内存Limit为 1.5 GB,则某些 pod 的使用量可能会超过最小值,从而导致节点内存不足并强制杀死某些pod。再或者,你设置的内存的request值比较小时,但是你的程序启动需要较大的内存,因此会超过你设置的request配额,那么就会被OOMKilled。不一定是超出了节点的可用资源限制。2.调整资源中内存的request的值,调大,例如我从200m 调到了1Gi。
2023-10-25 14:58:06
266
原创 Kubernetes(k8s)主要资源及使用实践
Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为。Kuberentes常用控制器如下•(副本控制器)•Deployment(无状态应用控制器)•DaemonSet(守护进程控制器)•(有状态应用控制器)•(任务控制器)每个Pod都会获取它自己的IP地址,通常这些IP是随机的,同时Pod重启IP地址也会改变。KubernetesService定义了这样一种抽象•ClusterIP。...
2022-07-17 23:18:56
2305
原创 kubernetes(k8s)架构及基础知识(三)之Kubernetes API 设计理念
对于云计算系统,系统 API 实际上处于系统设计的统领地位,K8s 集群系统每支持一项新功能,引入一项 新技术,一定会新引入对应的 API 对象,支持对该功能的管理操作。K8s 系统 API 的设计有以下几条原则:API 对象是 K8s 集群中的管理操作单元。K8s 集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的 API 对象,支持对该功能的管理操作。每个 API 对象都有以下3大类属性:Pod 是 Kubernetes 中的最小运行单位,可以理解其是对容器的一种封装解析:在 Kub
2022-07-13 15:55:18
841
原创 kubernetes(k8s)架构及基础知识(二)之Kubectl 工具简介
从用户角度来说,kubectl 是控制 K8s 的驾 驶舱,它允许你执行所有可能的 K8s 操作。从技术角度来看,kubectl 是 K8s API 的一个客户端。Kubernetes API 是一个 HTTP REST API 服务,该 API 服务才是 Kubernetes 的真正的用户 接口,Kubernetes 通过该 API 进行实际的控 制。这也就意味着每个 Kubernetes 的操作都会 通过 API 端点暴露出去,当然也就可以通过对这 些 API 端口进行 HTTP 请求来执行相应的操作。
2022-07-13 15:35:00
732
原创 linux之文本处理工具
在日常工作中,我们通常需要对文本内容进行一些列的处理,以下来总结以下,linux对文本处理的几个工具和用法。简介:cut的工作就是"剪",具体的说就是在文件中负责剪切数据用的。cut命令从文件的每一行剪切字节、字符和字段,并将这些字节,字符和字段输出。(1)基本用法cut [选项参数] filename说明:默认分隔符是制表符(2)选项参数说明(3)案例实操切割ifconfig后,打印IP地址简介:sed是一种流编辑器,它一次处理一行内容。处理时,把它处理的行存储在临时缓冲区中,称为”模式空间“
2022-07-09 00:19:08
1343
2
原创 shell编程入门(一天掌握shell编程)
一、背景到新公司之后,发现好多地方需要使用shell来编写一些简单的程序来提升自己的工作效率,因此专门B站上查看视频(尚硅谷的视频),在这里学习总结下shell编程。二、shell概述shell是一个命令行解释器,它接收应用程序或用户的命令,然后调用操作系统内核。shell还是一个相当强大的编程语言,易编写,易调试,灵活性强。三、shell入门1.脚本格式脚本格式以#!/bin/bash开头(指向解释器)2.第一个shell脚本,helloworld.sh,输出helloworld!
2022-05-22 22:51:37
27529
3
原创 【k8s】容器组(pod)启动失败场景总结
一、背景 现在的工作是云计算测试,经常需要接触云原生相关的技术,这里我总结下日常工作中遇到的pod启动失败的场景二、pod启动失败的场景查看pod启动事件命令:kubectl describe pod xxx -n xxx场景1:节点cpu不足...
2022-05-07 14:11:51
1419
原创 python基础及知识扩展
一、背景最近老是能看到抖音上给推荐一个博主的python视频,主要介绍python中各种的技巧,今天(五一期间)专门抽出时间来进行下总结。二、知识整理1.数字相关操作(太基础,简要写只写运算符和内置函数)计算商 //计算余数 %计算次幂 **求绝对值 asb(-5)将10进制转为16进制 hex(10)—>0xa (0x表示这是16进制)2进制转10进制 int(‘1001’, base=2) —>9 (不太明白base)求字符’A’的ascill码,ord(‘A’)求
2022-05-02 18:39:34
779
原创 接口自动化框架搭建 pytest
持续完善中。。。。1.用例管理一个excel文件就是一个项目,一个项目中的每个sheet就是一个模块,一个模块中写正常用例和异常用例2.提取数据用一列来专门提取数据,格式是字典,key为被赋值的变量,value为jsonpath要查询的接口返回的字段key,运行时判断如果有需要提取数据,则将数据进行保存到ini配置文件中3.url组合excel表格中用path,运行时通过输入环境参数,和表中的服务名,在ini配置文件中进行匹配对应的域名,和path组合成完整的url4.run运行时选择环境R
2022-03-03 11:25:56
2322
2
原创 梳理jenkins构建流程
一、背景最近需要进行服务环境治理项目,于是我把公司jenkins相关的部署流程给总结了一下。二、jenkins操作架构图三、详细流程拉代码–>打包–>构建镜像–>升级pod镜像1. 以go语言jenkins的流程梳理,以dev-bizops-svr为例1.丢弃旧的构建2.参数化构建-GIT-TAG3.git拉取代码--用tag号命名${GIT-TAG}构建新的分支 4.当前分支与master分支进行比较,看是否已经合并代码5.执行shell:5.1:定义变量PRO
2022-02-27 21:37:02
1484
原创 Grafana平台监控应用实例
一、背景由于各个服务日志格式不统一,导致现在添加日志监控,在数据收集方面比较困难,因此需要对日志格式进行统一二、涉及的平台、技术等Grafana平台地址 账号:admin,密码:Okay@123metrics举例Prometheus-webUI(这是公司的不写地址了)Prometheus学习文档grafana学习文档grafana官网地址1.k8s基础的知识deployment:pod依据deployment的yaml文件来进行创建pod:k8s中最小的单位,pod中有容器,容器
2022-02-23 13:06:21
5719
原创 python操作ini文件(configparser模块)
一、configparser简介configparser是读取ini配置文件的包,配置文件格式如下:[ ]内是写明section,section下为option,即key=value结构[dev]host = www.baidu-dev.comport = 3333dev = devmysql = mysql-wf[test]host = www.baidu-test.comport = 8081test = test[beta]host = www.baidu-beta.co
2022-02-16 15:34:47
773
原创 HttpRunner源码分析(数据驱动csv文件只取第一行数据问题)
一、运行逻辑步骤1.生成的pytest用例文件中:a.测试类类继承HttpRunner;b.入口为test_start(),如果需要进行数据驱动,则重写test_start()方法改为传参的方式test_start(param)源码的test_start()方法: def test_start(self, param: Dict = None) -> "HttpRunner": """main entrance, discovered by pytest"""
2022-02-11 19:13:26
932
2
原创 每天学点python
2022年,每天都要学点python1月19日 yied 和 yied from 区别和用法1.带Yied函数——带yield的函数是一个生成器,而不是一个函数,这个生成器有一个函数就是next函数,next就相当于"下一步"生成哪个书,这一次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,生成器并不会从foo函数开始执行,只是接着上一步停止的地方开始,然后遇到yield后,return出要生成的数,然后到这步就停止结束了。优点:用生成器可以节省内存2.Yi
2022-02-09 16:11:17
719
原创 HttpRunner入门
先认识一下自动化领域的六大框架:java:junit、testingpython:unitest、pytest、robotframework一、什么是httprunner?1.它是面向http协议的测试框架,只需要维护一份ymal/json就可以进行自动化测试、结合locust性能测试,线上监控、持续集成、devops等多种需求二、设计思想和理念1.复用优秀的开源项目(不重复造轮子,而是将轮子组装成战车)2.约定大于配置(提升测试脚本的可维护性)3.配置文件组织测试用例(yaml/jso
2022-02-04 10:00:00
998
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人