摘要: 一、关于Mock测试 1、什么是Mock测试? Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取的比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创 阅读全文
posted @ 2020-02-15 18:40 青域 阅读(848) 评论(0) 推荐(0)
摘要: 一、协程 协程,又称微线程 协程是python中另外一种实现多任务的方式,只不过比线程更小,占用更小执行单元(理解为需要的资源) 它自带CPU上下文,这样只要在合适的时间,我们就可以把一个协程切换到另一个协程,只要这个过程保存或恢复CPU上下文那么程序还是可以运行的 通俗的理解 在一个线程中的某个函 阅读全文
posted @ 2020-02-14 01:47 青域 阅读(525) 评论(0) 推荐(0)
摘要: 一、队列 Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先入先出)队列Queue,LIFO(后入先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语,能够在多线程中直接使用。可以使用队列来实现线程间的同步。 queue.Queue 阅读全文
posted @ 2020-02-13 02:13 青域 阅读(1725) 评论(0) 推荐(0)
摘要: 一、并发和并行 并发:任务数>CPU核数,通过系统的各任务调度算法,来回切换,实现多个任务“一起”运行,实际上不是真正同时一起运行,只是切换运行的速度相当快,看上去是一起执行的而已; 并行:任务数<=CPU核数,是真正的一起同时运行。 同步:同步是指代码调用IO操作时,必须等待IO操作完成返回才调用 阅读全文
posted @ 2020-02-10 00:40 青域 阅读(616) 评论(0) 推荐(0)
摘要: 一、元类 python2中所有类是基于instance创建的,称为旧式类;注明继承object时,称为新式类; python3中默认均为基于object,无区别; object为所有类的基类,所有的类的继承顶层父类都是object; type为所有类的元类,print(type(类名)),输出typ 阅读全文
posted @ 2020-02-09 03:40 青域 阅读(329) 评论(0) 推荐(0)
摘要: 面向对象三大特征: 封装:将数据和方法放在一个类中,构成封装 继承:子类继承父类属性和方法,可多继承 多态:一个事物有多种形态,一个抽象类有多个子类,不同的子类对象调用相同的方法,产生不同的执行结果。多态可以增加代码的灵活度。是基于类的继承。 class Animal: def run(self): 阅读全文
posted @ 2020-02-08 02:13 青域 阅读(267) 评论(0) 推荐(0)
摘要: 魔术方法 在python中,以双下划线开头、双下划线结尾的方法我们称之为魔术方法。例如__init__ 魔术方法是python内部定义好的,我们不需要去创建。 1.__new__方法和单例模式 __new__方法:Create and return a new object.创建对象时触发 clas 阅读全文
posted @ 2020-02-08 00:44 青域 阅读(459) 评论(0) 推荐(0)
摘要: 一、闭包 满足条件: 1. 函数内嵌套一个函数; 2.外层函数的返回值是内层函数的函数名; 3.内层嵌套函数对外部作用域有一个非全局变量的引用; def func(): print(" func ") num=2 def wrapper(): print(" wrapper ") print(num 阅读全文
posted @ 2020-02-05 16:47 青域 阅读(264) 评论(0) 推荐(0)
摘要: 函数进阶 1、递归函数:在函数体中调用自身;一定要设置退出的边界条件; def func_add(i): if i==1: return i res=i+func_add(i-1) return res print(func_add(3)) print(sys.getrecursionlimit() 阅读全文
posted @ 2020-02-03 16:08 青域 阅读(202) 评论(0) 推荐(0)
摘要: 基础数据类型: 数值: 整数、浮点 、布尔类型 序列:字符串、元祖、列表 --有序 散列:字典、集合 无序 拓展数据类型: 一、命名元组 示例: from collections import namedtuple tu=('lele',18,'男') print(tu[0]) # 取数据 stud 阅读全文
posted @ 2020-01-30 14:17 青域 阅读(251) 评论(0) 推荐(0)
摘要: 经过一段时间的使用,决定重新整理接口测试框架,整体结构如下: common下文件最多,分别为:case_template 测试用例模版、handle_config 配置、handle_data 数据替换、handle_db 数据库操作、handle_del 文件删除、handle_excel表格读写 阅读全文
posted @ 2020-01-15 17:20 青域 阅读(1342) 评论(0) 推荐(1)
摘要: 1. 背景: 本机win10上,后端django框架代码与前端vue框架代码联调通过。 2. 目的: 在centos7系统服务器上使用docker容器部署该项目。 3. 方案一:仅使用基础dockerfile逐步搭建部署; 方案二: 使用compose配置应用程序需要的所有服务,一键部署运行; 4. 阅读全文
posted @ 2019-12-14 15:56 青域 阅读(2665) 评论(0) 推荐(1)
摘要: 一、现象 /pinter/case/slow?userName=xxx tps很低,响应时间很长,数据库服务器cpu很高(接近100%),应用服务器负载比较低 索引 索引是对数据库表中一列或多列的值进行排序的一种结构,存储了表中的关键字段,使用索引可快速访问数据库表中的特定信息。类似于书籍中的目录。 阅读全文
posted @ 2019-10-21 18:21 青域 阅读(711) 评论(0) 推荐(1)
摘要: 一、现象 /pinter/case/cpu?type=1 使用google的gjson.tojson性能较差 type=2 使用性能好的阿里巴巴的fastjson库 压测过程中,发现应用服务器的CPU使用率比较高(>80%): 两种情况: 1、接口的性能非常好,比如响应时间<10ms,tps很高,此 阅读全文
posted @ 2019-09-28 16:56 青域 阅读(1314) 评论(0) 推荐(0)
摘要: 一、定义 在多线程情况下,如果一个线程对拥有某个资源的锁,那么这个线程就可以运行资源相关的代码。而其他线程就只能等待其执行完毕后,才能继续争夺资源锁,从而运行相关代码。二、场景 车票售卖系统,当前剩余车票1张,此时有A、B、C、D四个用户同时来购票,系统开启了四个线程来执行业务操作,其中: A线程刚 阅读全文
posted @ 2019-09-28 16:39 青域 阅读(527) 评论(0) 推荐(0)