自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 资源 (2)
  • 收藏
  • 关注

原创 十大排序算法之-冒泡排序

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

2024-04-19 09:14:49 173

原创 MySQL之explain执行计划

MySQL的EXPLAIN命令是开发者经常使用的一个强大的分析工具,帮助开发者了解查询的性能瓶颈和优化方向

2024-04-18 15:21:50 744

原创 MySQL死锁与死锁检测

MySQL中死锁是指两个或多个事务在互相等待对方释放资源,导致无法继续执行的情况。

2024-04-16 16:00:31 849

原创 MySQL中的锁(二) - 行锁

MySQL中行锁是一种用于控制并发访问的锁机制,它可以在事务中对数据库表的行进行加锁,以保证数据的一致性和完整性。

2024-04-02 17:35:38 601

原创 MySQL中的锁(一)

MySQL中的锁是用于协调多个会话对共享资源的并发访问时,以保证数据的一致性和完整性。

2024-03-20 10:03:20 925

原创 MySQL事务

MySQL中,事务是指最小的不可分割的执行单元,如数据库在执行(如插入、更新、删除等)操作时,这些操作被视为一个工作单元,要么全部执行成功(Commit),要么全部失败回滚(Rollback)。事务可以确保数据库的一致性和完整性。

2024-03-12 17:36:31 367

原创 MySQL执行原理、存储引擎、索引模型简介

数据库存储引擎是数据库底层软件组织,数据库管理管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。MySQL的核心就是存储引擎。mysql底层设计采用可插拔式的存储引擎,用户根据需求,选择或自定义存储引擎mysql5.5之后默认存储引擎为innodb1、查看mysql可支持的存储引擎2、各种存储引擎对比innoDBmysql5.5默认的存储引擎,事务型数据库。

2024-03-07 16:35:08 997

原创 sqlmap工具使用手册

sqlmap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞来接管数据库服务器。它具有强大的检测引擎,同时有众多强大功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令。...

2022-06-17 15:55:49 1890 1

原创 Java诊断工具Arthas使用说明

Arthas 是Alibaba开源的Java诊断工具,Arthas支持JDK 6+,支持Linux/Mac/Windows,支持命令行交互模式、 Tab 自动补全功能,方便进行问题的定位和诊断。

2022-05-31 15:17:55 1943

原创 Grafana+influxdb采集jmeter压测指标数据

InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

2022-03-03 21:18:15 2562

原创 Prometheus + Grafana + Node_Exporter系统指标监控平台搭建

组件简介Node Exporternode_exporter是一类数据采集组件的总称。Exporter负责从目标处搜集数据, 并将其转化为Prometheus支持的格式, 它开放了一个http接口(以便Prometheus来抓取数据). 与传统的数据采集组件不同的是, Exporter并不向中央服务器发送数据, 而是等待中央服务器(如Prometheus等)主动前来抓取。Prometheus · GitHub 有很多写好的exporter,可以直接下载使用。PrometheusPrometh

2022-03-02 22:43:07 2077 1

原创 Python打印杨辉三角解法一

题目:打印杨辉三角如下图:解法一def demo2(n): start,result = [1],[[1],[1,1]] if n ==1: return start if n ==2: return result for i in range(3,n+1): pre = [] for k in range(len(result[-1])-1): pre.appen.

2022-02-23 22:30:47 1235

原创 Python获取模块中的类及类的属性方法信息

Python获取模块中的类及类的属性方法信息

2021-12-12 17:03:01 5012

原创 Web安全之SQL注入漏洞学习(八)-混淆注入

混淆注入的定义与原理在普通的注入过程中注入动作过于明显,非常容易被识别检测到,此时就需要改变攻击手法,绕过系统的检查与过滤,这就是混淆注入。混淆注入的实施使用之前搭建的bWAPP平台进行演示,选择SQL injection(GET/SELECT)漏洞,级别选择中级首先使用union方式进行注入测试playload为:http://XX.XX.XXX.XXX:8080/sqli_2.php?movie=1%20union%20select%201,2,3,4,5,6,.

2021-10-24 23:43:42 3161

原创 Web安全之SQL注入漏洞学习(七)-堆叠注入

堆叠注入简介堆叠注入是指注入的多条SQL语句可以一起执行。MySQL命令行中, 每一条语句结尾加; 表示语句结束。这样是不是可以多句一起使用。这个叫做 stacked injection。堆叠注入原理&局限性原理在MySQL的SQL语法中,分号;是用来表示一条sql语句的结束,使用分号结束后可以在写一条SQL语句,若将使用分号分割的两条语句一起发给后端则两条语句都会被执行。局限1、堆叠注入需要后端API是否支持多语句执行,数据库引擎是否支持的限制,如果有一个不支持则无法使用

2021-10-10 22:26:30 823 4

原创 Web安全之SQL注入漏洞学习(六)-报错注入实战

DVWA靶机搭建​ DVWA(Damn Vulnerable Web App)是一个基于PHP/MySql搭建的Web应用程序,旨在为安全专业人员测试自己的专业技能和工具提供合法的 环境,帮助Web开发者更好的理解Web应用安全防范的过程。​ 搭建方法与第一遍文章搭建bWAPP环境相同!!默认用户名:admin 默认密码:password基础知识​ 在MySQL中,自带了 information_schema信息数据库。这个库的作用保存着关于MySQL服务器所维护的所有其他数据库的信息。如数

2021-10-06 22:32:53 238

原创 Web安全之SQL注入漏洞学习(五)-报错注入

报错注入主要是利用MySQL本身的逻辑漏洞,例如BigInt大数溢出。MySQL报错注入分类 BigInt数据类型溢出 Xpath语法错误 count+rand+group by重复报错 空间数据类型函数错误 rand函数说明rand(n)函数返回一个随机浮点数v,返回范围是0<=v<1,n是可选参数,如果提供则会设定n为一个生成随机数的种子。如果传递的参数n是一样的,则生成的随机数也是一致的。rand函数在每一次where语句条件判断时都

2021-10-05 22:16:22 1425

原创 Web安全之SQL注入漏洞学习(四)-时间盲注

基于时间延迟注入(Time-based)- 时间盲注利用sleep()或benchmark()等函数让mysql执行时间变长,通过页面的响应时间来判断条件是否正确。经常与if(expr1,expr2,expr3)语句结合使用,if(expr1,expr2,expr3)含义是如果expr1是True,则返回expr2,否则返回expr3。通俗讲就是当页面不返回查询结果或者是返回空无法判断注入的语句是否成功时,通过注入特定的SQL语句,根据也面对请求的时间反馈来判断是否注入成功。时间盲注原理介绍

2021-10-03 00:37:49 2052

原创 Web安全之SQL注入漏洞学习(三)-注入点的判断

判断注入的关键点是否存在SQL注入?只要是带有参数的动态网页,并且这个网页访问了数据库,则该网页就可能存在SQL注入属于哪一种SQL注入类型?当确认了网页存在注入漏洞后就需要进一步判断该注入点属于哪一种注入类型,知道了注入类型才能根据其特点构造注入的sql语句完成注入目的。推断后端的真实SQL写法推断后端的SQL的写法是非常重要的一步,只有推断出后端SQL语句的写法才能帮助我们完成后端SQL语句的闭合,比如知道传递的查询是=、like、in等。单引号判断法单引号判断法,即在输

2021-10-02 00:25:36 3122

原创 Web安全之SQL注入漏洞学习(二)-POST型注入

SQL注入 - POST型注入演示工具准备1、靶场(bWAPP)2、抓包工具(Fiddler)备注:bWAPP靶场搭建请看上一篇文章。抓包工具演示是使用的是Fiddler,也可以使用其他抓包工具。漏洞选择漏洞探测执行查询用抓包工具查看查询请求内容,从请求中可以获取的信息如下。通过抓包工具修改请求参数,进行漏洞探测,经过探测后可以确定的是此处查询存在注入漏洞漏洞分析当我们知道此次存在漏洞时,下一步就是要分析此处漏...

2021-09-29 18:00:00 550

原创 Web安全之SQL注入漏洞学习(一)

Web程序三层架构三层架构主要是指将业务应用规划为的表示层 UI、数据访问层 DAL 以及业务逻辑层 BLL,其分层的核心任务是“高内聚低耦合”的实现。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构被应用于众多类型的软件开发。 表示层(User Interface layer) 业务逻辑层(Business Logic Layer) 数据访问层(Data access layer) SQL注入定义&原理SQL注入是发生在应用程序与数.

2021-09-27 18:21:32 1365 2

原创 DDoS-分布式拒绝服务攻击

DoS与DDo S简介DoS( Denial of Service 拒绝服务攻击)是一种历史悠久的网络攻击手法,短时间内对目标服务器产生大量请求,使服务器链路拥塞或忙于处理攻击请求,导致服务暂时中断或停止,导致其正常用户无法访问。DDoS(Distributed Denial of Service分布式拒绝服务攻击)将多台计算机(僵尸网络)联合起来作为攻击平台,通过远程连接对一个或多个目标发动DoS攻击。目的消耗目标服务器性能或网络带宽,从而造成服务器无法为用户正常地提供服务。网络通信原

2021-08-31 00:01:24 2096

原创 缓存设计导致的问题测试要点总结

一、什么是缓存缓存实质就是一个临时的存储数据的容器。数据在这个容器中可以提高读取速度。二、缓存的分类缓存分为硬件缓存和软件缓存硬件缓存是位于CPU和内存之间的临时存储器软件缓存又分为内存缓存、数据库缓存、网络缓存内存缓存内存缓存的范围比较宽泛,这里只讨论RAM缓存即预先将数据写到容器(list,map,set)等数据存储单元中并将数据存储在RAM缓存中。一般应用设计中最常用的就是Redis。数据库缓存数据缓存是数据库本身的缓存,并不是外部缓存例如Redis/Memcache等等。数据库的

2021-08-15 11:59:09 655

原创 有趣的BUG(三)- 数据报表测试

在职业生涯中做过很多关于报表的需求,有财务报表、销售数据报表等等,报表的测试主要分为前端UI与功能测试以及统计数据的SQL测试下面简单总结一下报表测试的要点以及开发经常犯的错误一、报表测试特点1、涉及业务复杂、必须要对整体业务有深入了解2、涉及的数据量大、需要关联的数据表非常多,同样测试过程中创建测试数据也会变得困难3、SQL语句比较复杂会关联非常多的表以及使用非常多的函数,遇到过测试需求涉及的单个sql语句有上百行,整个报表需求涉及sql语句上千行二、报表需求测试中常见的BUG

2021-07-23 11:57:17 602

原创 HTTPS认证过程总结

一、常见的加密算法1、对称加密简介​ 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种 加密方法称为对称加密,也称为单密钥加密。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。​ 基于“对称密钥”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blow2、对称加密优缺点优点:算法公开、计算量小、加密速度快、加密效率高,在

2021-07-15 11:41:33 3291

原创 消息队列MQ学习总结

消息队列MQ是一种应用程序对应用程序的通信方法。 本质是一种先进先出的数据结构。一、MQ应用场景1、解耦 应用解耦解决的问题 在如下系统中,如果B、C、D功能发生变化则A系统也要跟着改变,或者是新增系统E时,也需要增加A的调用,这样A系统与B、C、D、E就是耦合在一起的,新增或修改功能就比较麻烦。 添加MQ组件后:A系统如果要调用B、C、D系统时,只需要将A的请求数据发送到MQ中再由BCD系统区进行消费,添加了MQ之后如果再需要新增修改BCD系统的功能就和A系统关联不大了。

2021-07-06 14:32:24 286

原创 总结应用日志统计分析Linux常用命令

一、awk命令​ AWK 是一种处理文本文件的语言,是一个强大的文本分析工具, 属于数据处理引擎,基于模式匹配检查输入文本,逐行处理并输出。通常用在Shell脚本中,获取指定的数据,单独使用时,可对文本数据做统计。1、awk语法格式 格式1:前置命令 | awk [选项] ‘条件{编辑指令}' 文件 格式2:awk [选项] ‘条件{编辑指令}' 文件 格式3:awk[选项]'BEGIN{编辑指令}{编辑指令}END{编辑指令}'文件 2、常用的选项...

2021-07-02 17:30:13 594

原创 有趣的BUG(二)- 异步处理问题

业务说明:用户注册后系统=操作,1、向A表插入数据 2、调用第三方接口获取信息X 3、将X信息更新到A表。后端处理:1和2操作是异步同时进行的bug:

2021-06-01 11:49:06 115

原创 有趣的bug(一)- 接口超时处理问题

发发发发

2021-06-01 10:36:01 363 1

原创 Django测试小工具平台开发(三)

测试小工具平台开发(三)一、编写前端页面在上一篇中已经写好了接口且已经通过了调试,接下来就要编写web页面去访问接口。同样在项目的templates/testtools/下创建sales_leads.html文件,内容如下:前端页面都是现学现卖的,请不要吐槽!!!!{% extends 'testtools/base.html' %}{% block content %}<h3>创建转介绍例子数绍</h3> <hr><form n..

2021-05-21 12:30:56 247 1

原创 Django测试小工具平台开发(二)

一、编写django视图函数Django 中的视图的概念是一类具有相同功能和模板的网页的集合。作用就是将数据写入到html模板文件中,然后返回给调用方。#django项目根目录下的views.py文文件中添加以下函数def create_sales_leads(request): if request.method == 'POST': if request.POST: env = request.POST.get('env') #环...

2021-05-19 09:17:09 6993

原创 Django测试小工具平台开发(一)

一、开发背景与目的​ 本人目前在一家在线教育公司从事软件测试工作,主要是负责公司销售后台系统版本迭代测试工作,在工作中经常需要创建各种数据提供测试,例如系统每天通过各种渠道注册进来流量数据,系统根据不同渠道数据进行分配处理。在测试工作中这部分工作占据了测试人员较多的时间,如果能通过脚本自动产生各种类型的注册用户数,测试中不涉及到注册相关的流程时,测试人员不用关注数据的产生只需要关注功能逻辑的验证,这样可以有效提高测试人员的测试效率。二、使用人群 公司销售后台系统测试人员 公司销售后台

2021-05-18 08:55:59 667 3

原创 Virtaulenv学习笔记

一、安装Virtualenvpip install virtualenv #查看virtualenv版本virtualenv --version二、Virtualenv基本使用关于python环境使用场景:1、当开发一个项目时不想与当前环境产生关联,即在新创建的环境中对环境的任何改动都不会影响其他环境,比如安装的第三方包、python解释器等。2、一个应用专享一个虚拟环境。3、virtualenv是基于本地python解释器虚拟出一个个环境,本质就是复制了个空的Py..

2021-04-23 15:42:11 251

原创 Anaconda使用教程

一、创建虚拟环境指令#创建虚拟环境conda create --name <env_name> <package_names> <env_name>即创建的环境名。建议以英文命名,且不加空格,名称两边不加尖括号“<>”。 <package_names>即安装在环境中的包名。名称两边不加尖括号“<>”。 如果要安装指定的版本号,则只需要在包名后面以=和版本号的形式执行。如:conda create --n

2021-04-23 15:37:01 669

原创 locust工具学习笔记(六)-自定义负载策略

locust工具学习笔记(六)-自定义负载策略1、LoadTestshape类在实际测试场景中默认的每秒生成一定用户数的场景不能满足测试需要,此时就需要自定义压测用户数的加载策略。我们在locust中可以直接使用LoadTestshape类,它可以完全的控制用户数和产生率。2、如何使用LoadTestshape类在脚本文件中定义一个继承LoadTestshape类的类,locust在启动时发现文件中有使用这个类会自动启动。在该类中需要定义tick()方法,该方法返回用户数以及产生率的..

2021-03-19 13:54:09 1445 2

原创 Django学习笔记(五)-编写应用

Django学习笔记(五)-编写应用1、编写一个简单的表单编写的投票详细页面的模板 ("polls/detail.html") ,让它包含一个 HTML<form>元素:<h1>{{ question.question_text }}</h1>​{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}​&..

2021-03-09 14:48:34 181

原创 Django学习笔记(四)-使用模板系统

一、使用模板系统detail()视图函数向模板返回question变量,模板处理如下:<h1>{{ question.question_text }}</h1><ul>{% for choice in question.choice_set.all %} <li>{{ choice.choice_text }}</li>{% endfor %}</ul>模板系统统一使用点符号来访问变量的属性。在示例 {{...

2021-03-03 19:42:08 201 1

原创 Django学习笔记(三)-管理页面、视图、函数

1、创建管理员账号#创建管理员账号命令python manage.py createsuperuser创建管理员用户之后启动项目访问http://127.0.0.1:8000/admin/ ,使用创建好的管理员账户密码登录2、将投票应用添加到管理页面中在polls/admin.py文件,添加代码如下:from django.contrib import admin​from .models import Question​admin.site.regis..

2021-02-18 11:43:17 203

原创 Django学习笔记(二)-配置数据库、创建模型

Django学习笔记(二)-配置数据库、创建模型1、数据库配置在创建的工程项目中找到settings.py文件,该文件可以用来配置使用的数据库,django模式使用自带的SQLite。现在将默认的数据库改为MySQL注意:需要先在MySQL中创建需要使用的库,如使用命令创建一个库CREATEDATABASEdjangodemo;DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', ...

2021-02-07 09:47:40 214

原创 Django学习笔记(一)-安装、创建工程应用

Django学习笔记(一)-安装、创建工程应用 学习使用版本: 2.2.17 参考官网教程 安装直接使用pip命令安装:pip install django==2.2.17 1、创建工程django-admin startproject djangodemo工程目录结构:─djangodemo │ manage.py │ └─djangodemo settings.py urls.py...

2021-02-03 19:13:24 137

软件测试之测试计划.pdf

软件测试之测试计划

2021-02-01

XXXXX测试报告.pdf

敏捷软件测试报告

2021-02-01

空空如也

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

TA关注的人

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