自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 装饰器总结

一:参考文献装饰器:https://www.bilibili.com/video/BV11s411V7Dt?spm_id_from=333.337.search-card.all.click二:定义装饰器是一个闭包函数,用于拓展原来函数功能的一种函数;作用:不用更改原函数的代码前提下给函数增加新的功能;特殊:它的返回值也是一个函数;使用:将一些特定或者通用的方法写成装饰器,在待装饰函数定义前加上@+装饰器名称;#带有不定参数的装饰器import timedef deco(func):

2022-04-01 14:37:14 191

原创 中间件 - nginx

一:是什么?高性能的http代理,作为反向代理,帮转发和处理请求;反向代理:代理的是服务器;正向代理:代理的是客户端;二:负载均衡理解轮询nginx第一个请求给服务器1,第二个请求给服务器2 … 第n个给服务器n加权轮询每个服务器设置权重,权重大的服务器接收请求更多;根据ip打到对应服务器,缺点:当对应的服务器挂掉时,信息会丢失;三:**动静分离,提升访问速度四:安装及实战https://www.bilibili.com/video/BV1F5411J7vK?p=7

2022-03-26 14:44:47 803

原创 锁相关记录

一:互斥锁现象:并发多个线程访问同一个资源的时候,导致数据异常;解决问题:互斥锁即同一个资源被一个线程访问;二:分布式锁(秒杀,抢券)思路:多线程请求redis,查询key标志,key存在即被锁,key不存在未锁,可抢锁;value=1表示已锁;value=0表示未锁;加锁过程需要设置 过期时间 以及 续命子线程;过期时间:防止线程1加锁后,客户端或redis宕机,锁无法释放;续命子线程:防止设置的过期时间不合理,还没有操作完就已经被释放;预期当key执行小于1/3时进行添加过期时间

2022-03-26 14:02:57 1503

原创 redis

一:正常缓存流程https://www.bilibili.com/video/BV1sK4y1x749?p=16&spm_id_from=pageDriver二:雪崩(直接连接数据库,如双十一)解决方案:1.缓存数据的过期时间设置随机数,防止统一时间,大量数据失效;2.定时任务同步缓存;3.给每一个缓存数据增加相应的缓存标记,记录缓存是否失效,如果缓存标记失效,则更新缓存;4.缓存预热,启动服务之前,调接口缓存热点key数据;5.加互斥锁,(本质就是请求排队查数据库,查数据key

2022-03-26 08:44:59 1541

原创 分布式消息中间件 - Kafka

一:MQ的作用系统解耦,异步通知,流量消峰;二:kafka是什么?分布式消息系统,高吞吐量比较多,组成部分(图2)特性:高可用,可扩容,解耦,异步,限流消峰(解决突发流量,防止服务器打垮,请求1000W,实际库存200W,防止队列中200W,其他返回售空);https://www.bilibili.com/video/BV1Hi4y1N7jL?p=3https://www.bilibili.com/video/BV1zX4y1g7my?spm_id_from=333.337.search-

2022-03-25 19:49:53 2287

原创 分布式消息中间件 - MQ

一:中间件分布式消息中间件;RabbitMQ/Kafka负载均衡中间件;nginx缓存中间件;redis数据库中间件mycat难点:中间件在架构中的作用,各个中间件的底层实现;技巧:结合生活中的例子,类比理解架构;推导中间件的各个功能设计原因;二:MQ简介三:问题(1)MQ 与 多线程实现异步的区别?(2)如何保证消息的幂等性?(3)如果消息队列满了,怎么保证消息队列不消失?(4)如何保证消息顺序执行?(5)设计一个MQ的思路?(6)如何保证MQ高可用?.

2022-03-25 15:39:39 3639

原创 断言常用合集

public void testGetModifyContentOfferEndTime() {Response response = pu.getModifyContentOfferEndTime();Assert.assertNotNull(response);Assert.assertEquals(response.code(), 200);Assert.assertNotNull(response.body().get(“data”));Assert.assertTrue(response

2021-09-07 10:25:37 84

原创 对excel进行的操作

文章目录前言一、安装二、读取excel1.读取excel对象2.读取表单对象3.根据表单对象读取数据4.读取单元格内容前言一、安装pip install xlrd注释:xlrd这个库对于新老版本的表格都支持;openpyxl 这个库只支持新版本的表格,旧的表格不支持;二、读取excel1.读取excel对象代码如下(示例):import xlrdbook = xlrd.open_workbook("shuju.xlsx")print("此时得到的是一个对象:%s"%book).

2020-11-03 16:08:27 131

原创 自动化日记

第一阶段:查看网上别人的测试平台框架,有前后端分离的还有全后端不分离的;比较各个平台的优点,选择框架,尝试了很多,比如unitest,pytest,RF,最终选择了Django;unitest,pytest属于小型的单元测试,做一个测试平台的话,不太够;RF当时做的是UI自动化,但是他编写的代码虽然简练,但是涉及的逻辑内容都是一样的,编写习惯比较蹩脚;最大的问题是做平台的话,目前写前端的内容不能满足,仅限于后端代码;第二阶段:选择好框架Django后,先假装数据已经拼接好,编写request.py调用

2020-10-29 10:13:10 107

原创 Django实现数据的增删改查

目录二、需求:添加数据并入库1.定义model2.post请求,json格式+手动(save)数据入库3.post请求,表单格式+自动(creat)数据入库三、需求:查询数据1.全部查询与单一查询二、需求:添加数据并入库1.定义model代码如下(示例):from django.db import models# Create your models here.class Student_Models(models.Model): sname = models.CharField

2020-09-17 10:20:31 1299

原创 Django创建子应用并注册

一、需求前提Django创建子应用都在apps文档中,与工程mall,不是一级别;创建子应用时使用:python …/manage.py startapp projects;二、设置根目录默认的根目录是project_01,实际上是mall;点击mall,鼠标右键,选择设置根路径三、注册子应用1.setting.py代码如下(示例):import syssys.path.insert(0,os.path.join(BASE_DIR,'apps'))INSTALLED_APPS =

2020-09-16 17:45:00 563

原创 Django前后端交互小案例

目录二、案例实现1.确定url:http://127.0.0.1:8000/show/2.子应用中url3.子应用视图4.前端二、案例实现需求:查询数据库中的数据,并在前端以表格的形式全部展示1.确定url:http://127.0.0.1:8000/show/根路径url代码如下(示例):from django.contrib import adminfrom django.urls import path, include,re_pathfrom APPS import progec

2020-09-16 09:49:58 511

原创 Django 实现注册登录需求

本篇文章实现注册登录需求注册模块创建一个子应用(models)登录模块创建一个子应用(progects)文章目录前言一、链接mysql数据库二、定义model三、映射,数据迁移四、实现需求4-1.根路径url4-2.登录子应用url4-3.登录子应用视图4-4.登录login.html4-5.注册子应用url4-6.注册子应用视图4-7.注册前端代码前言前提:1.创建Django项目2.创建两个子应用提示:以下是本篇文章正文内容,下面案例可供参考一、链接mysql数据库1-1.

2020-09-15 23:57:33 373

原创 HTTP请求及相应知识点

目录一、HTTP相应的格式及状态码二、Fiddler抓取请求及响应1.get请求与响应2.post请求与响应一、HTTP相应的格式及状态码共分为5种类型:1xx 信息,服务器收到请求,需要请求者继续执行操作2xx 成功,操作被成功接收并处理3xx 重定向,需要进一步的操作以完成请求4xx 客户端错误,请求包含语法错误或无法完成请求5xx 服务器错误,服务器在处理请求的过程中发生了错误常见状态码&含义 200 - 请求成功,已经正常处理完毕 301 - 请

2020-09-15 09:57:17 108

原创 Django get与post项目实战

文章目录前言一、创建Django项目二、实现get请求1.设置根路由2.设置子应用中的路由3.访问登录页4.发起get请求三、实现post请求1.前端代码 login.html2.post请求,中间件防止跨站攻击3.后台post请求前言简单的实现get与post项目实战一、创建Django项目1-1前提是安装Django(版本号:2.2.15) : pip install Django==2.2.15;1-2创建项目的时候选择Django,编写存放路径及python版本1-3设置...

2020-09-14 23:48:42 188

原创 第三方库requests理解及post请求实现

接口自动化使用requests包,本片文章通过底层代码理解requests如何使用文章目录一、requests是什么?二、第三方库requests解析1.requests调用api.py中的request, get, head, post, patch, put, delete, options等方法2.进一步查看api.py文件3.实践:通过一个POST请求接口,使用第三方库requests实现总结一、requests是什么?Requests 是用Python语言编写,基于 urllib.

2020-09-06 12:08:48 734

原创 魔法函数应用

魔法函数应用提示:本篇文章讲述常见的几个魔法函数及其应用例子文章目录魔法函数应用一、魔法函数1.__doc__:获取类的描述信息2.__module__:获取当前操作的对象在哪个模块3. __call__:对象后面加括号,触发执行;3.__str__:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值4.__init__:初始化方法,通过类创建对象时,自动触发执行提示:以下是本篇文章正文内容,下面案例可供参考一、魔法函数1.doc:获取类的描述信息代码如

2020-09-02 22:11:56 140

原创 Django+unitest搭建测试平台(一)

文章目录前言一、Django简介二、搭建Django项目1.建立虚拟环境(virtualenv)2.创建虚拟环境下的项目目录(image)3.切换到项目中,进行激活4.在项目中安装Django5.创建工程项目(image)6.执行迁移7.运行项目8.创建子应用程序总结前言Django+unitest搭建测试平台,第一位是先研究Django框架,本篇是Django基础第一篇,后续会逐步深入。提示:以下是本篇文章正文内容,下面案例可供参考一、Django简介1.特点1.1提供项目工程管理的..

2020-08-26 14:51:25 378 1

原创 robotframwork基础(一):框架简介及安装

robotframwork基础(一):框架简介及安装如果你想学习如何使用robotframwork, 可以仔细阅读这篇文章,了解一下robotframwork的框架知识。框架简介自动运行测试用例自动记录运行过程自动校验测试结果自动生成测试报告是一款python编写的功能自动化测试框架,支持关键字驱动,包含两部分:(1)系统关键字(库),具有丰富的开源库(2)用户关键字(keywords/资源文件)可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行不需要编程,只需要编写测试用

2020-08-14 10:52:53 252

空空如也

空空如也

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

TA关注的人

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