自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [java]测试中常常出现的NullPointerException-NPE是怎么回事?

在测试时,查看log的时候,有时候会看到NullPointerException-NPE的错误,大名鼎鼎的空指针!之前一直都不知道咋回事;最近在学习java;记录下;首先先来了解在java中,什么是null呢?如果创建一个引用的数组,但是不赋值的话,输出是null;说明引用也有缺省值 --null1.null是引用类型的缺省值2.null代表空,不存在,可以读作空3.引用类型的数组创建出来,初始值都是空用java代码举个例子!1.创建一个Mercandise类;...

2020-08-25 15:46:33 98

原创 【性能测试】jvm垃圾回收的新生代/老年代/永久代

Java的一大特性就是内存的分配和回收都是自动进行的。当程序规模不大时,我们完全可以不考虑内存的使用情况。但是一旦程序的规模足够大,对性能的要求足够高时,了解Java垃圾收集(GC)的内部机制并根据具体的应用特征来调整使用的垃圾收集算法就显得十分重要了;顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。对于绝大...

2020-05-07 15:46:02 86

原创 【python设计模式】python设计模式之构建者模式

当我们想要创建一个由多个部分构成的对象,而且他们的构建需要一步接一步的地完成,只有当各个部分都创建好,这个对象才算完整。 -- 这正是 建造者设计模式的用武之地。比如建造一个抽象的类Builder,定义画六个身体部位的方法,每画一种人,就新建一个继承Builder的类,这样新建的类就必须要实现Builder的所以方法,这里主要运用了抽象方法的特性,父类定义了几个抽象的方法,子类必须要实...

2020-04-30 11:49:02 90

原创 【python设计模式】python设计模式之工厂模式

本质:根据传入参数的不同,返回对应的不同对象(类似鸡生蛋),方便造对象,但不做任何动作。工厂模式的目的是为了解耦:1.把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的方法,而至于B的实例化,就交给工厂类。2.工厂模式可以降低代码重复。如果创建对象B的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。我们可以这些...

2020-04-30 11:48:32 103

原创 【python算法】图的遍历与最小路径

数据结构中,图的应用场景非常广泛,与我们的生活息息相关,在基于图做的应用中,比较典型的有:在交通规划中的最小生成树,用于导航的最短路径等。比如下图这里,我们介绍邻接表表示方法。在表示图的时,我们一般使用如下的两个实例属性,表示邻接表的字典nodeNeighbors,标志是否已访问的字典visited。针对如下的图:来实现广度优先遍历以及深度优先遍历:简述思想:1...

2020-04-16 18:05:10 191

原创 【接口自动化框架】测试数据部分增加替换变量功能

我们的接口自动化框架的测试数据放到json文件中,但是有些参数是动态生成的;解决这个问题我想到两个解决方法:1,通过测试case的文件中生成变量后再赋值给json文件中的变量(缺点:重复代码多)2,在json文件中直接引用函数,在case读取json文件时,运行函数更改变量(此文介绍这种方法)...

2020-04-07 18:48:18 234 1

原创 【性能测试】性能分析与调优之配置优化

配置优化的关键词:JVM,连接池,线程池,缓存机制,CDN等优化手段,这些优化提高了资源利用率,有大限度的压榨服务器性能。一.JVM配置优化:合理的分配堆和非堆堆内存,配置适合堆内存回收算法,提高系统服务的能力二.连接池:数据库连接池可以节省建立连接和关闭连接的资源消耗三.线程池:通过缓存线程的状态来减少新建线程与关闭线程的开销,一般是在中间件中进行配置,比如在Tomcat...

2020-03-24 16:00:14 102

原创 缓存导致的三个问题-缓存穿透/缓存雪崩/缓存击穿

一.缓存穿透缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会直接去数据库层进行查询,从系统层面来看像是穿透了缓存层直接达到db,从而称为缓存穿透,没有了缓存层的保护,这种查询一定不存在的数据对系统来说可能是一种危险,如果有人恶意用这种一定不存在的数据来频繁请求系统,不,准确的说是攻击系统,请求都会到达数据库层导致db(DataBase)瘫痪从而引起系统故障二.缓存雪崩...

2020-03-12 19:57:50 71

原创 介绍mysql/redis/mongodb的异同

MongoDB:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但MongoDB并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构...

2020-03-07 20:58:33 66

原创 简要介绍nginx的使用

Nginx已经成为主流的静态web容器、转发器、cache。在web容器上完全超越apache、在转发上代替传统硬件设备、在cache已经可以媲美squid。加之大量的开源社区不断地贡献,使nginx功能不断完善和强大,已经有逐步成为统一平台的趋势。...

2020-03-07 18:23:08 72

原创 简单了解互联网常见的系统架构

一.简单了解互联网目前常见的系统架构一台普通服务器的处理能力是有限的。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。负载均衡(Load Balance)——有两台或者以上的服务器或者站点提供服务,服务将来自客户端的请求,靠某种算法,去尽量...

2020-03-04 17:09:03 99

原创 【python-requests】实现文件上传

def upload_file(host, api,filepath, **kwargs): url = host + api querystring = { "app_id": "10000", "region": "en", "lang": "zh-cn" } headers = { } ...

2020-03-03 23:22:57 133

原创 【python算法】买卖股票的最佳时机问题之一二三

买卖股票的最佳时机问题一给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入 : [7, 1, 5, 3, 6, 4]输出 : 5解释 : 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时...

2020-02-23 13:56:47 478

原创 【python算法】在无序列表中寻找第k大的数

#利用的是插入算法def find_k(testlist,k): for i in range(1,k): for j in range(i,0,-1): if testlist[j] > testlist[j-1]: testlist[j],testlist[j-1] = testlist[j-1],te...

2020-02-19 23:21:03 326

原创 【python算法】判断字符串/链表是否是回文

一.判断字符串是否为回文def huiwen(teststring): len_s = len(teststring) flag = True for i in range(len_s//2): if teststring[i] != teststring[len_s-1-i]: flag = False ...

2020-02-17 22:53:51 204 1

原创 python 多线程模版用于制造大规模测试数据

from queue import Queueimport randomimport threadingimport timefrom mysql_client import MysqlManagermysql_config ={ "database": "xiaoyuteacher", "host": "127.0.0.1", "p...

2020-02-11 16:39:52 95

原创 数据库的操作--存储过程

在平时压力测试时,造测试数据,会常用到存储过程。第一步:连接数据库:mysql -uroot -p第二步:创建测试用的table:CREATE TABLE IF NOT EXISTS `index_user`( `id` INT UNSIGNED AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, `email` VARCHA...

2020-02-11 11:10:35 54

原创 【python算法】比较两个版本号的大小

def versionCompare(v1, v2): v1_check = re.match("\d+(\.\d+){0,2}", v1) v2_check = re.match("\d+(\.\d+){0,2}", v2) print(v1_check.group()) if v1_check is None or v2_check is None or v1...

2020-02-06 19:14:53 202

原创 【python算法】队列的操作

# encoding=utf-8#定义节点类class Node(object): def __init__(self,val): self.val = val self.next = None#定义队列类class Queue(object): def __init__(self): self.first = ...

2020-02-03 11:59:16 33

原创 【python算法】插入排序

关于插入排序,其算法的核心思想是:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数。即:序列的第一个元素,肯定是有序的,把第二个元素和第一个元素相比,插入到合适的位置,这样前两个元素就有序了,接着,把第三个元素插入到前面包含两个元素的有序列表中,以此类推,直至插完第n个数据。细节说明:将多个数字进行升序排序时,每次基于有序的列表进行插入,方法类似冒泡排序...

2019-11-06 11:29:36 83

原创 python面试170个知识点

持续更新中,目前更新到50了..1.谈谈对 Python 和其他语言的区别答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植、可扩展,可嵌入的解释型编程语言,属于动态语言。拿 C 语言和 Python 比: Python 的第三方类库比较齐全并且使用简洁,很少代码就能实现一些功能,如果用 C 去实现相同的功能可能就比较复...

2019-10-26 14:29:23 468

原创 docker简介及安装

1.docker:一个能够把开发的应用程序自动部署到容器的开源引擎。这个引擎的目标是提供一个轻量,快速的环境,能够运行开发者的程序,并方便高效的将程序从开发者的笔记本部署到测试环境,生产环境。2.容器是直接运行在操作系统内核之上的用户空间容器其实是一种沙盒技术。顾名思义,沙盒就是能够像一个集装箱一样,把你的应用“装”起来的技术。这样,应用与应用之间,就因为有了边界而不至于相互...

2019-10-20 22:32:36 77

原创 测试开发经典面试题:Cookie和Session的区别

Cookie和Session的区别虽然 Cookie 和 Session 都可以跟踪客户端的访问记录,但是它们的工作方式显然是不同的,Cookie 通过把所有要保存的数据通过 HTTP 协议的头部从客户端传递到服务端,又从服务端再传回到客户端,所有的数据都存储在客户端的浏览器里,所以这些 Cookie 数据可以被访问到,就像我们前面通过 Firefox 的插件 HttpFox 可以看到所有的 ...

2019-10-12 11:19:27 246

原创 python实现链表的创建/增加/删除/查询/输出

class Node(object): def __init__(self,value=None,next=None): self.value = value self.next = next#输出一个链表def Printlinklist(node): while node: print(node.value) ...

2019-10-05 22:05:16 652 1

原创 pytest测试框架4-插件与hook函数

一.简介pytest的自带功能很强大,通过添加插件可以扩展功能,pytest的代码结构适合定制和扩展插件,可以借助hook函数来实现。把fixture函数或者hook函数添加到conftest文件里,就已经创建了一个本地的conftest插件!二.pytest plugin加载的几种方式:1.内置plugins:从代码内部的_pytest目录加载;2.外部插件(第三方...

2019-09-08 20:00:09 2367 2

原创 pytest测试框架3-如何将测试代码与测试数据分离?

pytest参数化测试!参数化测试允许传递多组数据,一旦发现测试失败,pytest会及时报告。@pytest.mark.parametrize(argnames,argvalues)装饰器可以达到批量传送参数的目的第一步:用python的requests请求一个接口:import requestsimport pytestimport allureclass TestP...

2019-08-18 12:57:56 2508 1

原创 pytest测试框架2-深入讲解pytest的配置文件

一.pytest里都有哪些非测试文件?1.pytest.ini: pytest的主配置文件,可以改变pytest的默认行为,其中有很多可配置的选项2.conftest.py:是本地的插件库,其中的hook函数和fixture将作用于该文件所在的目录以及所有子目录。3.__init__py:每个测试子目录都包含该文件时,那么在多个测试目录中可以出现同名测试文件。二.如何查看in...

2019-08-02 15:39:00 875 1

原创 python3实现一个kafka的consumer和producer

kafka大致流程图如下:生产者:将字符串发送给 Kafka 消费者: 获取数据并展示在终端窗口中一.用python3实现一个producer(填你们自己需要的信息就好啦)import jsonfrom kafka import KafkaProducerfrom kafka.errors import KafkaErrorclass KafkaClie...

2019-07-24 17:54:46 1624

原创 python高级函数六剑客

第一位:lambda1.lambda语句被用来创建新的函数对象,并且在运行时返回它们。2.Python使用lambda关键字来创建匿名函数。这种函数得名于省略了用 def声明函数的标准步骤。3.lambda只是一个表达式,函数体比def简单很多4.lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表 达式中封装有限的逻辑进去。5,lambda函数拥有自己的名...

2019-07-14 20:55:30 109

原创 pytest测试框架1-强大的Fixture功能

1.fixture是 干什么用的??fixture是在测试函数运行前后,由pytest执行的外壳函数;代码可以定制,满足多变的测试需求;包括定义传入测试中的数据集,配置测试前系统的初始状态,为批量测试提供数据源等等...fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制!2.举个例子@pytest.fixture()def ...

2019-07-14 20:48:46 1575 2

原创 pipeline中实现gitlab push代码后自动触发Jenkinsjob

前提:jenkins已经安装gitlab plugin 插件,且版本大于等于1.5.12jenkins插件各个版本的链接:http://updates.jenkins-ci.org/download/plugins/gitlab-plugin/通过upload plugin即可安装指定版本一.在Jenkinsfile文件的triggers下增加一个触发器gitlab(trig...

2019-06-22 19:16:44 3360

原创 python-关于时间操作的总结

最近测试了一个接口,各种换算时间,把时间相关的操作查了一遍。。总结下1.因为本机时间是北京时间,Jenkins上的时间是utc格林威治时间会少8h,所以从时间戳转化成时间time.localtime()会根据具体的本地时间转换,产生不一致,所以指定具体时区可以避免这个问题根据时间戳转换时间reset_time = 1552406400reset_time = datetime.da...

2019-06-18 16:49:26 79

原创 测试中需要知道的kafka核心知识点

术语 Broker:对应节点,多个Broker构成Kafka集群Topic:一类消息Partition:Topic的物理存储。一个Topic对应多个PatitionsSegment:Partition的物理存储。一个Partition包含多个Segment消息生产 消息内容+topic→hash到目标partition,生成消息的唯一标识offset 指定Pa...

2019-01-12 13:35:31 379

原创 测试开发工程师常见面试题(随时更新)

一.功能测试用例的设计举例:(一).我想要回家,让你给我买一张票,然后设计测试用例答案:1.确定需求(回家回哪,需要什么票,买什么时候的票)2.开始测试2.1功能测试(我去买票(买火车票,飞机票),买到票(什么时候),回来给你)2.2可靠性测试(我去买票过程中被撞死了,票买不到怎么办,延期了,买那个点的票没了怎么办让我帮他买票的人的身份,比如是否有特殊优待,如军人,1米...

2018-08-10 18:49:34 43977 5

原创 【python数据分析(一)】Numpy基础及基本应用

一.数据处理的一般流程:数据收集—》数据预处理—》数据处理—》数据展示数据收集:网络爬虫,公开数据集,其他途径收集的数据数据预处理:归一化,二值化,维度变换,去重,无效数据过滤数据处理:数据排序,数据查找,数据统计分析展示:列表,图表,动态交互图形 二.numpy的优点高性能,开源,数组运算,读写迅速 三.numpy的定义1.NumPy 是一个 Pyth...

2018-08-07 16:33:25 1398

原创 【接口测试】接口测试总结(一)

一.什么是接口测试?接口的概念接口,两个不同系统(或子程序)交接并通过它彼此作用的部分。接口测试概念接口测试(Interface Testing)是针对系统间或系统的组件间接口的一种测试,意在测试特定接口在给定输入下的行为与预期行为之间的符合性。接口测试重点:检查数据交换、传递和控制管理过程、以及系统间的相互逻辑依赖关系等。二.接口测试的测试内容三.接口测试的测试...

2018-07-21 12:12:02 996

原创 【python】爬取优信二手车首页的图片被下载到文件夹中

#coding='utf-8'import requestsimport refrom bs4 import BeautifulSoupimport urllibimport timefrom lxml import etreeheads={ 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537....

2018-07-15 00:44:10 214

原创 【mysql】mysql(一)查数据

查询上面这种表:1.查询表中所有数据:MariaDB [test]> select * from bug;2.查询系统为11.3的bug列表:MariaDB [test]> select * from bug where system="iOS11.3";3.设定返回的记录行数:MariaDB [test]> select * from bug where system="iOS...

2018-07-13 15:31:11 484

原创 【python】从一个文件中,查找出现次数最多的5个词

#coding = utf-8def find_word(filename): resultdict={} with open(filename)as fp: for i in fp: print i wordlist=i.split() for j in wordlist: if not resultdict.has_key(j): resultd...

2018-07-13 14:14:50 4474

原创 【python】字典的key值是通过什么原理导致唯一性的

字典的key值是可哈希的,字典的存储结构是哈希表, 这样字典的查找性能就会很好(前提是处理好碰撞), 所以字典的key必须是可哈希的可哈希的意思是:不可变得,可变的数据类型不可哈希,列表,字典可变,字母、字符串、数字、元组不可变;在Python中,字典也就是一个个的“映射”,将key映射到value:为了实现这个功能,Python必须能够做到,给出一个key,找到哪一个value与这个key对应。...

2018-07-13 13:43:13 1220

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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