自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 pytest-web自动化框架搭建

目标:搭建一个灵活,可复用,pom分层的web自动化框架待完善

2021-09-09 19:07:23 457 2

原创 pytest接口自动化框架搭建

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

2021-09-07 10:42:24 8698 32

原创 如何进行性能测试(在百度工作时日常压测总结)

如何做性能测试一、知道目标qps,看服务器需要多大的资源步骤:将线下配置与线上配置保持一致;编写压测方案;编写压测脚本-设置jmeter参数【线程数、常数吞吐量计时器、header、http请求、响应断言、聚合报告】开始运行;查看聚合报告,看错误率,90、95的响应时间,吞吐量;不通过,则进行排查问题:【1.查看cpu、内存是否达到瓶颈;2.查看数据库连接数、cpu、内存等是否达到瓶颈;3.或配合rd,通过trace组件来排查耗时较高的方法,以进行优化;】;经过优化或对服务资源调整,使达到

2021-04-04 21:48:30 6006 2

原创 jenkins集成,用于运行自动化

jenkins运行自动化用例

2024-04-18 16:58:04 491

原创 基于pytest自动化测试框架分享

pytest详细介绍

2024-04-18 16:37:36 723

原创 强制删除命名空间(K8S 强制删除卡在Terminating状态的namespaces 记录)

参考:https://blog.csdn.net/lxy___/article/details/106644302。此时需要创建匿名用户的权限,命令如下。

2024-04-10 14:06:10 252

原创 pytest接口自动化框架实际应用

pytest自动化框架实际应用

2024-04-03 15:08:16 166

原创 理解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 149

原创 服务器免密登录设置

集群节点免密登录设置

2023-09-15 17:24:20 664

原创 Kubernetes(k8s)主要资源及使用实践

Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为。Kuberentes常用控制器如下•(副本控制器)•Deployment(无状态应用控制器)•DaemonSet(守护进程控制器)•(有状态应用控制器)•(任务控制器)每个Pod都会获取它自己的IP地址,通常这些IP是随机的,同时Pod重启IP地址也会改变。KubernetesService定义了这样一种抽象•ClusterIP。...

2022-07-17 23:18:56 1724 1

原创 kubernetes(k8s)架构及基础知识(三)之Kubernetes API 设计理念

对于云计算系统,系统 API 实际上处于系统设计的统领地位,K8s 集群系统每支持一项新功能,引入一项 新技术,一定会新引入对应的 API 对象,支持对该功能的管理操作。K8s 系统 API 的设计有以下几条原则:API 对象是 K8s 集群中的管理操作单元。K8s 集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的 API 对象,支持对该功能的管理操作。每个 API 对象都有以下3大类属性:Pod 是 Kubernetes 中的最小运行单位,可以理解其是对容器的一种封装解析:在 Kub

2022-07-13 15:55:18 452

原创 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 555

原创 kubernetes(k8s)架构及基础知识(一)

本栏目用于总结一下k8s和云原生相关的知识

2022-07-10 21:25:41 419 1

原创 linux之文本处理工具

在日常工作中,我们通常需要对文本内容进行一些列的处理,以下来总结以下,linux对文本处理的几个工具和用法。简介:cut的工作就是"剪",具体的说就是在文件中负责剪切数据用的。cut命令从文件的每一行剪切字节、字符和字段,并将这些字节,字符和字段输出。(1)基本用法cut [选项参数] filename说明:默认分隔符是制表符(2)选项参数说明(3)案例实操切割ifconfig后,打印IP地址简介:sed是一种流编辑器,它一次处理一行内容。处理时,把它处理的行存储在临时缓冲区中,称为”模式空间“

2022-07-09 00:19:08 902 2

原创 shell编程入门(一天掌握shell编程)

一、背景到新公司之后,发现好多地方需要使用shell来编写一些简单的程序来提升自己的工作效率,因此专门B站上查看视频(尚硅谷的视频),在这里学习总结下shell编程。二、shell概述shell是一个命令行解释器,它接收应用程序或用户的命令,然后调用操作系统内核。shell还是一个相当强大的编程语言,易编写,易调试,灵活性强。三、shell入门1.脚本格式脚本格式以#!/bin/bash开头(指向解释器)2.第一个shell脚本,helloworld.sh,输出helloworld!

2022-05-22 22:51:37 23486 3

原创 【k8s】容器组(pod)启动失败场景总结

一、背景 现在的工作是云计算测试,经常需要接触云原生相关的技术,这里我总结下日常工作中遇到的pod启动失败的场景二、pod启动失败的场景查看pod启动事件命令:kubectl describe pod xxx -n xxx场景1:节点cpu不足...

2022-05-07 14:11:51 1206

原创 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 696

原创 接口自动化框架搭建 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 2057 1

原创 梳理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 1231

原创 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 5455

原创 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 702

原创 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 832 1

原创 每天学点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 611

原创 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 882

原创 三次握手与四次挥手

SYN(synchronous 建立联机) 、ACK(acknowledgement 确认) 、PSH(push 传送)、 FIN(finish 结束) 、RST(reset 重置) 、URG(urgent 紧急)、Sequence number(顺序号码) 、Acknowledge number(确认号码)。1、三次握手2、四次挥手...

2022-01-29 15:41:34 1838

原创 全链路压测

一、背景公司最近开始进行链路压测,由我负责配合新东方的人员进行全链路压测。二、压测场景分析三、压测准备工作四、压测数据五、数据隔离六、压测执行方法六、压测问题分析及解决...

2021-12-01 18:58:18 2554 1

原创 django之rest_framework框架总结

备注:这是学rest_framework时做的笔记,给自己看的,格式有点乱第一章开发模式 普通开发方式,前后端放在一起 前后端分离后端开发 为前端提供url(API/接口的开发) 永远返回HttpResponse面向对象 -封装 -对同一类方法封装到类中 class File:文件增删改查方法class BD:数据库的方法将数据封装到对象中继承多个类重复的功能,可以用继承来实现Django FBV、CBVFBV基于函数的视图CBV基于类的视图viewc

2021-11-02 17:39:11 422

原创 基于python的接口录制平台的设计与开发

背景:要写论文,我选择的题目是“基于python的应用研究与开发”,我打算把公司的hrun-接口录制平台,从设计,到技术分析,到代码实现,进行系统的总结下。(继续完善中。。。)

2021-11-01 10:19:32 599

转载 python之反射机制

待学习

2021-08-26 22:19:07 109

转载 软件测试之jmeter性能测试

本文参考:Jmeter原理Jmeter原理JMETER是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销大,如果以进程的方式来运行每台负载机上的进程数量不会允许太多,当有大量并发时就需要大量的负载机,jmeter选择了以线程方式来运行。jmeter通过线程组来驱动多个线程运行测试脚本对被测服务器发起负载,每一个负载机上都可以运行多个线程组。jemter运行场景不仅可以再gui方式中完成,还可以运行命令行,而且命令行的运行方式对于负载机的资源消耗会更小。Jmeter基本原理是建立一个

2021-08-26 18:04:14 946

原创 软件测试必备技能

软件测试一、基本的概念1.软件测试定义2.软件测试类型3.各种不同点,如app测试和web测试不通点、b/s架构和c/s架构不同点、http和https不同点等等4.测试点及测试用例编写(很重要),比如:微信发红包,发消息这些功能,去提取测试点,从功能、性能、ui、安全、兼容等多个几个方面去考虑。。。二、常用linux语句查看进程:ps -ef查看端口:netstat -an。。。三、sql语句基本的增、删、改、查语句可以在力扣或者牛客网上刷刷题四、adb命令(操作安卓手机的命令

2021-08-26 17:32:51 348

原创 python之发送邮件

一、python发送邮件思路整理定义smtp服务器,如:smtp.qq.com定义用户名和密码(授权码):username 和 password定义接收邮箱:receiver创建邮件对象:message将信息组装到邮件对象登录smtp服务器,并发送邮件二、不废话直接上代码import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextclass E

2021-08-20 15:18:50 1300

原创 pytest之通过@pytest.fixture()来实现部分用例前后置

一、@pytest.fixture()的5个参数含义@pytest.fixture(scope="", params="", autouse="", ids="", name="")scope:表示被@pytest.fixture()方法标记的作用域。functions(默认)、class、moudle、package/sessionparams:参数化(支持,列表,元组,字典列表[{},{},{}],字典元组({},{},{}) )autouse=True:自动执行,默认Falseids:参

2021-08-18 18:26:51 1778 1

原创 unittest用例前后置(testFixture测试夹具)

unittest用例前后置import unittestdef setUpModule(): print("模块级别的夹具开始")def tearDownModule(): print("模块级别的夹具结束")class Test1(unittest.TestCase): @classmethod # 这是类方法,必须加上这个装饰器 def setUpClass(cls): print("\n在每个类之前执行一次,如创建数据库连接,生成日志

2021-08-16 17:06:22 361

原创 自动化之数据驱动实现方式(DDT 和 pytest.mark.parametrize())

注:这篇博客专门介绍自动化数据驱动的实现方式一、unittest实现数据驱动(ddt)1.1、什么是DDT?data driver test数据驱动测试,可以完美的和unittest结合实现数据驱动1.2、DDT中的装饰器@ddt:装饰类,作用是用于申明当前类使用ddt数据驱动@data: 装饰函数,作用是给函数传值@unpack:装饰函数,作用是数据解包@file_data:装饰函数,作用是直接读yaml、json文件1.3、代码示例示例一:注意:传几个值,就会运行几次impo

2021-08-13 18:22:25 1850 2

原创 web自动化(selenium)

注:开始学习selenium自动化,这篇是基于观看b站百里讲的selenium课程,进行的总结一、web自动化简介1.哪些适合做web自动化软件需求变更不频繁项目周期比较长自动化脚本能够重复利用2.自动化测试介入点系统测试-回归测试3.自动化测试项目的实施过程可行性分析——>框架选择(selenium,RF)——>需求分析——>计划——>测试用例设计——>无人值守(和jenkins集成)——>提交报告——>脚本维护二、环境搭建pyth

2021-08-09 23:34:09 1066

原创 UI自动化框架设计(pom模型)

一、UI自动化基础分层配置文件:存放配置信息,如地址url等数据文件:存放测试数据,实现测试数据与测试脚本分离;数据驱动:将测试数据与测试脚本分离;日志:日志的管理测试报告:hmtl测试报告的存放目录;测试用例:集中管理TestCase;测试页面:测试页面实现业务逻辑,测试元素从逻辑中剥离出来;POM:通过PO模式让测试代码更易于维护,提高测试脚本的复用性;测试邮件执行入口:框架的执行入口,阻止用例运行。二、PO模型设计...

2021-08-09 18:06:34 1517

原创 日志,logging模块

一、日志级别DEBUGINFOWARNING:当某些不期望的事情发生时记录的信息(如:磁盘可用空间较低),但是应用程序还是正常运行工作;ERROR:由于一个更严重的问题导致某些功能不能正常运行时记录的信息;CRITCAL:当发生严重错误,导致应用程序不能继续运行时记录的信息二、logging模块logging模块提供了四大组件实现日志处理。loggers(日志器):提供应用程序代码直接使用的接口;handlers(处理器):用于将日志记录发送到指定的目的位置;filters(过滤器

2021-08-09 16:08:47 106

原创 Django项目部署

一、基础概念项目部署是指在软件开发完毕后,将开发机器上运行的软件实际安装到服务器上进行长期运行1.在安装机器上安装和配置同版本的环境【py,数据库等】2.django项目迁移3.用uWSGI代替 python manage.py runserver 方法启动服务器4.配置nginx反向代理服务器5.用nginx配置静态文件路径,解决静态文件路径问题二、uWSGI 网关接口配置WSGI定义WSGI(Web Server Gateway Interface)Web服务器网关接口,是Pyth

2021-08-06 16:05:43 306

原创 Django发送邮件

一、协议:IMAP 和 POP3两者均为“拉取”型协议,负责从邮件服务器中下载邮件IMAP具备摘要浏览功能,可预览部分摘要,再下载整个邮件IMAP为双向协议,客户端操作可反馈给服务器POP3必须下载全部邮件,无摘要功能POP3为单向协议,客户端操作无法同步服务器二、逻辑图三、Django发送邮件django中配置了邮件功能,主要为SMTP协议,负责发邮件原理:给Django授权一个邮箱Django用该邮箱给对应收件人发送邮件django.core.mail 封装了电子邮件自动

2021-08-06 10:50:02 184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除