自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP/IP网络协议族分成及其每层作用

1、可以分为应用层、传输层、网络层、物理层2、各层的作用应用层(可以想象成是快递打包过程)决定了向用户提供应用服务时通信的活动,将要进行的操作或者数据进行一个打包。传输层(可以理解为选择顺丰、圆通等快递公司)提供数据传输的方法,TCP(Transmission Control Protocol, 传输控制协议) 和 UDP(User Data Protocol,用户数据报协议)。网络层:(可以想象成快递途中走什么路线)处理网络上流动的数据包,该层规定了以什么杨的路径进行数据的传送,比如:通过i

2023-02-21 14:36:38 792

原创 python上下文管理器

python上下文管理器。

2023-02-16 17:45:40 163 1

原创 python魔法方法

1、__new__方法:在创建对象的时候都会调用__new__方法进行,对象的创建重写__new__方法:一定要调用父类的new方法def __new__(cls,*args,**kwarags): #cls 类对象的本身 print("-----new方法----") return object.__new__(cls)重写的实例:单例模式2、__str__和__repr__方法注意:在重写这两个方法时,一定要返回一个字符串3、...

2022-11-10 15:41:08 269

原创 python 生成器运用

1、列表生成器:按照一定的规则生成全部的数据结果:2、生成器:将一个规则存放在一个对象中,在调用时才会生成数据第一种:结果:第二种:结果:3、生成器之send方法结果:就是send的值将yield i整体替换4、生成器之应用多任务(协程并发)结果:瞬间执行出结果...

2022-04-13 17:58:34 797

原创 grafana + prometheus + node_exporter

一、简介grafanaprometheus: 时序数据库, 存储数据的node_exporter: 收集数据(收集监控数据)node_exporter 收集linux系统资源利用数据这个解决方案中,node_exporter 是可变的,是根据你要收集哪些数据来进行选择,可以是mysql、tomcat等二、grafana + prometheus + node_exporter监控配置第一步:安装prometheus开源,直接解压就可以使用tar.gz包,解压,

2022-04-13 14:31:47 692

转载 如何根据需求分析文档编写测试用例

从拿到需求文档不要立马开始着手写测试用例,需要仔细推敲整理需求,画出系统级、模块内流程图,并找出各种测试点,等对需求进行了头脑风暴般的整理之后,此时已对测试系统的功能很清楚了,再着手开始写测试用例。那么编写测试用例的总体思路是什么呢?1、整理分析需求文档仔细将需求文档阅读一遍,记录不明白的地方及关键测试点,简单画出总体流程图。然后再来一遍,仔细分析各个模块的功能,画出模块内流程图,找出所有功能,并列出主要测试点2、编写用例按照不同的业务规则可将测试用例分为四部分:场景用例、系统用例、功能用例

2022-03-24 20:03:44 2161

原创 数据库性能调优

mysql数据库的优化os + 库1、 磁盘io比较高磁盘、磁盘空间比较大2、 os: linuxos本身就有一些限制ulimit 打开文件数量,操作系统可以运行最大进程+线程数ulimit -a:查看系统的全部信息ulimit -n: 查看最大的文件数量,一般设置为16000uimit -u:查看最大的进程和线程数库本身配置参数查看数据库的配置参数:show variables;修改这些参数:1、set gloable 参数名=参数值2、修改配置文件

2022-03-14 17:21:29 2092

原创 mysql--视图

一、介绍及基本语法1、介绍2、语法create [or replace] view 试图名称 as select 语句select语句也可以从一个视图里面进行查询二、视图检查选项1、 with cascaded check option语句检查当前视图以及依赖的视图的条件查询(不管是否有视图检查条件)解释:向视图v1中添加数据时不需要判断,id<=20,因为没有检查选项(黄色表示没有添加)向视图v2中添加数据时需要判断,20>= id >=10向视图v

2022-03-08 17:05:45 174

原创 SQL优化

一、插入数据优化1、insert优化批量插入手动提交事务start transaction;insert 语句;insert 语句;commit;主键顺序插入大批量插入数据(load指令) load data local infile '/root/sql.log' into table 'tb_user' fields terminated by ',' lines terminated by '\n''/root/sql.log':导入的数据文件路径'tb_u

2022-03-08 15:42:29 179

原创 索引的使用

索引的使用原则:1、最左前缀法则(针对于联合索引查询)创建的索引:create index idx_user_pro_age_sta ON tb_user(profession,age,status);查询语句:运用explain命令可以查看以上查询是否用到索引:第一、二、三条:几个字段都用到索引第四、五个:就没有用索引去查导致结果:查看explain中type字段,可以看到性能比较低2、范围查询优化:用>=、<=代替>、<3、索引列运算前提:phon

2022-03-04 19:18:07 6204

原创 mysql性能分析命令

1、查看SQL执行频率2、慢查询日志3、profile详情4、explain执行计划运用explain命令查看执行查询语句时,表是如何连接以及连接顺序重点关注字段:type、possible_key、key、key_len字段type字段:1、const:表示主键或者唯一索引进行查询时2、eq_ref:3、ref:非唯一性索引进行查询4、range:5、index:用了索引,但是全部索引进行查询6、all:全表遍历查询...

2022-03-04 17:19:20 265

翻译 mysql-索引

一、索引的结构1、索引概述为了提高查询数据的速度’但是会减低插入更改的速度、消耗一定的磁盘2、索引结构主要关注第一种,支持B+树索引3、Btree 索引4、B+Tree索引mysql中B+Tree的存储结构5、Hash索引6、为什么InnoDB存储引擎选择使用B+Tree索引结构?二、索引分类再InnoDB存储引擎中,根据索引的存储形式,分为根据聚集索引查询:查询的数据为一行数据 根据二级索引查询:查询的数据为主键数据三、索引语法创建索引create [un

2022-03-03 20:34:01 84

原创 多表查询练习

多张表进行连接查询步骤,1、先找到需要查询的表2、分开查找连接条件,多个连接条件使用and连接3、 查询条件,直接跟在where的连接条件后面,用and连接示例1:1、查询“研发部”所有员工的信息及工资等级涉及的表:emp(员工表)、salgrade(薪资等级表)、dept(部门表)连接条件:emp.salary between salgrade.losal and salgrade.hisal emp.dept_id=dept.id查询条件:dept.name="研发部"sql第一步:

2022-03-02 17:39:33 407

翻译 SQL-DQL(查询)

DQL-语法:编写顺序:1、聚合函数:2、分组查询(Group by )示例:查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址Select workdress,count(*) from emp where age <45 group by workdress having count(*)>=3;3、排序查询(order by)4、分页查询(limit)查询第二页数据,每页10条数据:select * from emp limit 10

2022-03-01 14:53:29 177

原创 grafana+prometheus监控nginx

1、在nginx的机器上下载nginx-module-vts # nginx-module-vts.tar.gz git clone https://gitee.com/mirrors/nginx-module-vts.git tar -xzvf nginx-module-vts.tar.gz # 路径: /opt/nginx-module-vts2、 # 重新安装nginx进入nginx的解压文件夹中 ./configure --prefix=/usr/local/n

2022-02-28 17:55:41 2361

原创 nginx配置集群

安装nginx+ 安装nginx方法1:安装必须的pcre:wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8.44.tar.gztar -xzvf pcre-8.44.tar.gzcd pcre-8.44./configuremake && make install安装nginx:wget http://nginx.org/download/nginx-1.19.5.tar.gz

2022-02-28 17:01:52 4000

原创 grafana + prometheus 监控tomcat

1、配置comcatjvm_exporter文件+下载地址:Central Repository: io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1 (maven.org)放到tomcat的bin文件夹tomcat.yml 文件也上传到tomcat的bin文件夹中修改 catalina.sh文件 JAVA_OPTS="-javaagent:./jmx_prometheus_javaagent-0.16.1.jar=3088:./tomcat.

2022-02-28 11:40:43 653 1

原创 python之高阶函数

1、返回函数高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。def lazy_sum(*args): def sum(): ax = 0 for n in args: ax = ax + n return ax return sumf = lazy_sum(1,2,3,4,5)print(f)>>><function lazy_sum.<locals>.su

2022-02-21 17:28:11 366

原创 python 函数参数

1、位置参数def power(x): return x * x对于power(x)函数,参数x就是一个位置参数,属于必传参数。2、默认参数:def enroll(name, gender, age=6, city='Beijing'): print('name:', name) print('gender:', gender) print('age:', age) print('city:', city)name,gender属于位置参数,age、ci

2022-02-21 17:10:14 374

原创 python 高级特性

python高级特性1、切片示例L[0:3] 表示从索引0开始取,直到索引3为止,单不包括3.L[:3]第一个索引是0,还可以省略L[1:] 表示从索引为1的到最后一个L[10:20] 表示索引为10到19的元素L[:-1] 表示索引0到最后一个元素2、迭代(Iteration)如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)通过collections.abc模块的Iterable类型判断一个对象是否可以

2022-02-18 15:03:40 112

原创 python中几个重要的函数(lambda,filter,range,reduce,map,zip、sorted)

首先我们用几个题目来引入:一、一行代码实现1-100奇数求和第一种:filter+lambdasum(list(filter(lambda x: x%2==1,range(1,101))))解析:1、lambda是一个表达式,而不是一个语句。因为这一点,lambda可以出现在python语法不允许def出现的地方—例如,在一个列表常量中或者函数调用的参数中,此外,作为一个表达式,lambda返回一个值一个值(一个新的函数),可以选择性地值给一个变量名。相反,def语句总是得在头部将一个新的函数

2022-02-14 17:50:37 644

原创 Appium中的强制等待

2022-02-11 11:07:08 325

原创 docker知识以及部署项目

一、docker介绍docker: 软件docker容器(container): 它是一个沙箱。每一个沙箱之间是相互隔离,默认只有一个出入口,仓库(repository):管理容器的镜像的地方,官方网站镜像:​https://hub.docker.com/国内的镜像下载:https://hub.daocloud.io/镜像(image): 根据你的要求,封装好的一个文件集合docker容器: docker软件+镜像,运行, 就可以提供服务出来二、基本命令docker命令docke

2022-01-26 18:02:16 1268

原创 selenium文件上传

1、input标签上传文件2、依赖第三方库pywinauto:仅可用于windows3、第三方库pyautogui,mac、linux、windows通用

2022-01-14 18:00:43 204

原创 Appium中常用的定位方法

1、通过ID定位ele = driver.find_element_by_id("idname")2、通过class定位ele = driver.find_element_by_class_name("classname")3、xpath定位ele = driver.find_element_by_xpath()注意:与web自动化里面的text不同Appium中文本用://[@text = “文本信息”]web中文本用://[@text()=“文本信息”]4、UiSelector定

2022-01-10 16:48:38 1803

原创 微信小程序自动化

1、打开微信调试模式点击连接:http://debugmm.qq.com/?forcex5=ture进入:http://debugx5.qq.com打开:2、启动参数配置desired_cap = { "platformName": "Android", # 手机系统 "platformVersion": "9", # 系统版本 "deviceName": 'HUAWEI', # 手机的名称 "appPackage": "com.tencent.mm", #

2022-01-07 17:48:46 465

原创 混合App自动化测试

前言app如果是混合型,及安卓原生和H5,appium无法定位H5,需要其他的工具进行元素定位,大致步骤如下:一、切换进入web页面中1、UC-devtools工具运用这个工具进行app中web页面定位,查看元素2、定位web页面,需要先切换到web页面中获取当前app的上下文(web页面)context = driver.contexts切换到上下文中driver.switch_to.context(conext)3、添加对应的浏览器驱动下载对应版本的浏览器驱动appium启动

2022-01-07 16:29:46 2101

原创 pytest笔记

一、pytest对比unittest二、pytest用例前后置方式二:@pytest.fixture(scope='function') 用例级别的前后置@pytest.fixture(scope='class') 类级别的前后置定义和引用:随便定义一个方法,加上@pytest.fixture(scope='function')标签引用:用例中把方法名当参数传入,def test_01(self,cls_setup):写入conftest.py文件下,pytest运行时,会自动读取.

2022-01-05 15:19:10 232

原创 selenium滑动到元素可见状态(滑动元素、窗口操作)

一、当定位的元素在页面的较底部时,直接打开无法定位,我们需要先滑动页面,可以看见元素步骤:1、先定位这个元素的位置2、调用滑动到元素可见属性,会返回元素的坐标位置二、窗口操作1、滑动窗口2、打开新窗口,并进行切换...

2021-12-17 16:25:53 4232

原创 selenium执行js代码

前言:selenium定位输入readOnly属性的时候,没办法直接输入,我们需要使用js进行定位1、方法一:js定位元素js = "document.getElementById("train_day").value = '2021-01-01'"# 执行js代码driver.execute_script(js)2、方法二:修改readOnly属性为false,就是让这个元素不是只读js = "document.getElementById("train_day").readOnly =

2021-12-17 15:57:19 2200

原创 iframe标签切换、alert弹框切换、鼠标、键盘操作、下拉选择框、get_attribute()

一、iframe切换1、元素嵌套在iframe标签中时,代码中直接定位是无效的需要先切换到iframe中方式1:通过iframe标签的name属性进行切换driver.switch_to.frame(“login_frame”)方式二:先定位iframe标签,不是需要定位的元素标签,在进行切换loc_iframe=(By.ID,“login_frame”)driver.switch_to.frame(*loc_iframe)2、多层iframe标签需要一层一层的切换3、从iframe标签切换

2021-12-17 14:46:37 750

原创 css定位元素

2021-12-16 14:19:41 198

原创 Xpthon定位

一、基本语法:/:代表根节点,查找元素只能一级一级往下找//: 查找子孙元素,不用考虑元素的层级.:代表当前已经选中的节点drv = driver.find_element_by_xpath("xxx")# 从上面已经查到的元素向下查找,要用`.`drv.find_element_by_xpath("./xxx")..:代表当前节点的父节点*:通配符(表示匹配所有的元素)二、谓语(条件):通过中括号来表示1、下标取值:[index]我们取标签的第一个:我们需要用括号:(//span

2021-12-15 18:20:37 1460

原创 locust-笔记

locust笔记,查看git厂库、locust脚本1、处理Cookie2、上传下载文件类型接口3、多任务执行顺序:用户操作继承一个新的类:SequentialTaskSet4、性能提升(FastHttpuser )

2021-12-15 17:21:23 209

原创 Jmeter-jdbc协议

1、下载对应数据库的jar包,放到jmeter的lib文件夹下2、配置jdbc的配置原件不同的数据库 url 写法不一样:driver class 不同的数据库,也是不一样mysql 5: com.mysql.jdbc.Drivermysql8:手动编辑:com.mysql.cj.jdbc.Driver3、使用JDBC取样器,编写数据库命令,存放查询到的数据sql语句,CRUD​ query type: select statement 、 update statement、 prep

2021-12-14 16:02:14 1059

原创 CICD(Jenkins + jmeter + ant持续集成)

1、jenkins:持续集成 持续交付的典型工具jenkins安装:jdk:1.8tomcat + Jenkins.war +os(windows\linux\mac)默认端口: 8080用户名/.jenkinsjenkins 改成国内源Jenkins的访问地址: http://jenkins_ip:8080/jenkins2、ant:打包、编译、测试安装ant到本地jenkins上配置ant路径:新建item构建: invoke ant高级配置: 一定要选择你的

2021-12-09 11:24:27 322

原创 服务器性能分析基础命令(vmstat、mpstat、pidstat)

1、vmstat这个命令是系统自带虚拟内存统计的缩写,可对虚拟内存、进程、cpu活动进行监控[root@vircent7 ~]# vmstat 1 1procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 27

2021-12-08 15:22:29 741

原创 jmeter聚合报告

聚合报告\汇总报告在性能测试中,看聚合报告,有前提条件:1、没有网络瓶颈因为,在很多时候,我们在看聚合报告时,会把 吞吐量的值 等价为 TPS的值怎么判断有没有网络瓶颈?聚合报告最后两列,是 吞吐率 吞吐率 与我们的带宽是有关系, 吞吐率,是可以看出是否存在网络带宽问题?20Mb 100Mb1Mb = 1 x 1024kb = 1024kb/8 = 128KB/s企业服务器,一般电商类的产品,也就几m带宽总结来说就是,把吞吐率和服务器运行上传的带宽.

2021-12-07 15:21:03 477

原创 linux的根路径

linux 的根路径/boot 核相关文件/bin 存放系统中可用的命令/etc 系统管理所需要的所有配置文件/usr unix shared resource 用户共享程序文件夹/opt optional 给主机额外安装的软件目录 相当于window d盘/home 它用户目录,它下一级文件夹,默认是被系统当作用户名的根路径在企业中,你们操作服务器,一般会给你们非root权限的账号,那这个账号,肯定会在/home目录下面有一个文件夹,文件夹的名称是你的用户名,你的所有操..

2021-12-06 17:15:48 1486

原创 jmeter分布式+jenkins持续集成

分布式: 分摊发起方的压力,产生更大的压力向服务器发起请求分布式的配置:多台机器有条件:jdk 大版本要一致 java -version 大版本号要相同,小版本号可以不相同jmeter版本要一致jmeter的插件要一致有没有要求操作系统?没有 可以使用不同操作系统配置助攻机器:jmeter.propertiesserver_port=自定义一个端口server.rmi.port= 与上面相同的端口server.rmi.ssl.disable=t

2021-12-01 18:02:36 829

空空如也

空空如也

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

TA关注的人

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