自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python基础语法【6】—— 结构数据类型之字典

文章目录一.创建字典1.使用{ }创建字典2.使用fromkeys()方法创建字典3.使用dict()映射函数创建字典二.访问字典元素三.向字典中添加键值对四.修改字典中的键值对五.删除字典中的键值对六.判断字典中是否存在指定键七.dict字典所包含的方法1.keys(),values(),items()方法2.copy()方法3.update()方法4.pop()和popitem()方法  字典概念:  字典是一种无序的,可变的序列,它的元素以“键值对(key-value)”的形式存储,字典类型是

2020-11-23 20:54:44 829

原创 Python基础语法【5】—— 结构数据类型之元组

文章目录一.创建元组1.使用()直接创建元组2.使用tuple()函数创建元组二.访问元组元素1.使用索引方式访问2.使用切片方式访问三.修改元组元素1.对元组重新进行赋值2.使用+拼接元组  元组概念:  元组和列表类似,也是由一系列按特定顺序排序的元素组成的,但是它和列表的区别在于,列表的元素是可以后期进行修改的,包括对列表进行插入,删除,修改等一系列的操作,而反观元组,它一旦被创立,元素就不可以被改变了,所以元组是不可变序列,因此,元组通常下被用来保存无需修改的内容。  元组表示:(e

2020-11-21 15:56:27 411

原创 Python基础语法【4】—— 结构数据类型之列表

文章目录一.创建列表1.使用 [ ] 直接创建列表2.使用list()函数创建列表二.访问列表元素1.使用索引方式访问列表元素2.使用切片方式访问列表元素三.添加元素到列表   列表概念:  在实际开发中,经常需要将一组数据存储起来,以便后边使用,在c语言或者Java中是使用数组存储一组数据,Python中没有数组,而是引入了列表。  列表中的所有元素都在一对中括号内 [ ],中括号内的元素之间用逗号分隔开,如下所示:[element1, element2, element3, …, ele

2020-11-20 19:39:42 404

原创 Python基础语法【3】—— 结构数据类型之集合

文章目录1.创建set集合的方法2.访问set集合元素3.添加元素到set集合4.从set集合中删除元素5.set集合作交集,并集,差集①两个集合作交集(&)②两个集合作并集(|)③两个集合作差集(-)④两个集合作对称差集(^)6.set集合的常用方法    集合概念:  Python语言中结构数据类型有很多种,常见的就是集合类型,列表类型,元组类型和字典类型   集合是一个无序不重复元素的集合。它的主要功能是自动清除重复的元素。即集合中的元素是唯一的,不重复的。  创建集合时用大

2020-11-11 21:02:38 307

原创 Python基础语法【2】—— 简单数据类型

文章目录一.数字类型1.int(整型)2.float(小数/浮点型)3.bool(布尔类型)4.complex(复数)二.字符串类型1.如何处理字符串中的引号??2.如何处理字符串的换行??3.Python的原始字符串三.数据类型的相互转化1.转换为整数类型2.转换为小数类型3.转换为字符串类型   一.数字类型  Python 3支持int,float,bool,complex(复数)4种数字类型1.int(整型)  Python中的整数包括正整数,0和负整数  Python中的整数和其他

2020-11-11 19:35:16 681 1

原创 Python基础语法【1】——程序结构、输入输出、变量、标识符和保留字

文章目录程序结构一.缩进分层二.代码注释1.单行注释2.多行注释Python的输入和输出一.接收键盘输入二.输出处理结果变量标识符和保留字一.标识符二.保留字   程序结构 一.缩进分层 Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断,Python是使用缩进分层来写模块的 例1(严格缩进):if True: print("1234") print("5678") //缩进else: print("abcd") print

2020-11-11 11:06:04 451

原创 图片服务器项目测试

图片服务器界面:   核心功能:1.上传图片2.展示图片3.删除图片4.复制图片地址,在另外的服务器打开 从功能,性能,安全性,界面,易用性,兼容性方面设计测试用例   一.界面测试(ui)1.布局①图片是否展示完全,是否有图片重叠的情况出现②当图片的数量比较多时,每一行最多只能展示五张图片,剩下的折行展示③每一张图大小是否一致,都是200×200px④每一张图片都在一个div框里面,图片左下方有图片名称以及删除按钮⑤界面布局是否合理,符合人体工学,看着舒适,有重点突

2020-09-13 11:12:49 415

原创 图片服务器项目

图片服务器项目   一.核心功能1.上传图片2.展示图片3.删除图片4.复制图片地址,在另外的服务器打开   二.核心知识点1.Web服务器(Http服务器)设计开发能力(Servlet)  Servlet是Tomcat这个Http服务器所提供的一组编程接口,可以去开发一些自己的逻辑,然后部署到Tomcat上去,就可以完成自己的服务器的搭建2.服务器要有一定的存储能力,使用JDBC操作Mysql数据库3.根据实际情况来设计数据库表结构4.前后端交互的API设计(基于HTTP

2020-09-04 18:16:55 430

原创 性能测试loadrunner基础知识——性能测试分类

为什么要进行性能测试? 1.验证应用程序是否能够很快的响应用户的要求2.验证应用程序是否能够处理预期的用户负载并且有盈余能力3.验证应用程序是否能处理业务所需的事务数量4.在预期和非预期的用户负载下,应用程序是否稳定5.是否能保证用户在真正使用软件时获得舒服的体验  性能测试都要关注哪些方面? 1.并发用户数/吞吐量2.平均响应时间3.服务器资源占用情况4.可靠性,可扩展性5.软硬件配置是否合适   概念和术语  性能测试是通过自动化的测试工具模拟多种正常,峰值以及超

2020-07-31 18:02:41 388

原创 自动化测试selenium+python——生成HTML报告,异常捕获,数据驱动

HTML报告生成  脚本执行完后,还需要看HTML报告。在生成报告之前要先保证自己的python目录…\Python38\Lib下有HTMLTestRunner.py  runnerall.py:import unittestimport HTMLTestRunnerimport sys,time,os#手工添加案例到套件def creatsuit(): discover = unittest.defaultTestLoader.discover('../test',patter

2020-07-29 18:23:16 583

原创 自动化测试selenium+python——unittest测试框架

什么是unittest?  unittest是python的单元测试框架,unittest单元测试提供了创建测试用例,测试套件,以及批量执行的方案,在使用unittest时,直接引入unittest包就可以使用。unittest各组件的关系:1.test fixture:初始化和清理测试环境,比如创建临时的数据库,文件和目录等,其中setUp()和tearDown()是最常用的方法2.test case:单元测试用例,TestCase是编写单元测试用例最常用的类3.test suit:单元测试

2020-07-29 16:25:59 725

原创 自动化测试selenium+python(webdriver常用的API)

观察脚本#coding = utf-8from selenium import webdriverimport timebrowser = webdriver.Firefox()browser.get("https://www.baidu.com")browser.find_element_by_id("kw").send_keys("selenium")browser.find_element_by_id("su").click()time.sleep(3)browser.quit(

2020-07-28 17:29:52 1017

原创 关于测试的分类

按照开发阶段分 一.单元测试  单元测试是对软件的组成单元进行测试。目的是检验软件基本组成单元的正确性。测试的对象是软件设计的最小单位:模块。测试阶段:编码后或者编码前测试对象:最小模块测试人员:白盒测试工程师或者开发工程师测试依据:代码和注释+详细的文档设计测试方法:白盒测试测试内容:模块接口测试,局部数据结构测试,路径测试,错误处理测试,边界测试  二.集成测试  集成测试也叫做联合测试,组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检

2020-07-21 19:07:17 347

原创 软件测试——用例篇(测试用例的设计方法)

测试用例的基本要素测试用例的概念:为了实施测试而向被测试系统提供的一组集合,包括测试环境,操作步骤,测试数据,预期结果等要素 评价测试用例的标准:用例表达清楚,无二义性用例可操作性强用例输入输出明确,一条用例只有一个预期结果用例的可维护性好用例对需求的覆盖率高暴露程序的Bug的能力强  测试用例的基本要素...

2020-07-18 18:05:28 1354

原创 软件测试基础(描述Bug,Bug的生命周期)

软件测试的生命周期需求分析——测试计划——测试设计——测试开发——测试执行——测试评估  如何描述一个Bug一个合格的bug描述应该包括以下几个部分:  一.发现问题的版本开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障,并且版本的标识也有利于统计和分析每个版本的质量   二.问题出现的环境环境分为硬件环境和软件环境,如果是web项目,需要描述浏览器版本,客户机操作系统等,如果是app项目,需要描述机型,分辨率,操作系统版本等。详细的环境描述有利于故障的定位   三.错

2020-07-14 22:07:20 1071

原创 软件测试——基本概念(软件开发和测试模型)

 ·软件测试的目的和原则目的:验证软件有没有问题原则:以客户为中心,遵循软件测试的规范,流程,标准和要求   测试并不仅仅是为了找出错误,通过分析错误产生的原因,阶段及错误发生的趋势。1.帮助项目管理者了解当前软件开发过程中的缺陷,以便及时纠错,改进    2.帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性  3.让开发人员知道错误产生的重灾区,加强自测试     ·什么是需求?IEEE定义:软件需求是1.用户解决问题或者达到目标所需要的条件或权能  2.系统或系统

2020-07-14 19:28:45 475

原创 网络原理初识

计算机网络背景 网络发展1.独立模式: 计算机之间是相互独立的  2.网络互联: 多台计算机连接在一起,完成数据共享   3.局域网: 计算机数量多了,通过交换机和路由器连接在一起4.广域网: 将远隔千里的计算机连起来局域网,城域网,广域网详细知识点   OSI七层模型·OSI(开放系统互连) 七层网络模型称为开放式系统互连参考模型,是一个逻辑上的定义和规范·将网络从逻辑上分为7层,每一层都有相关的相应的物理设备·OSI七层模型是一种框架的设计方法,其最主要的功能就

2020-07-02 22:42:14 269

原创 序列化与反序列化

一.什么是序列化与反序列化1.序列化:把对象转换为字节序列的过程称为对象的序列化2.反序列化:把字节序列转换为对象的过程称为对象的反序列化   有时候要将信息持久化保存起来,序列化的意思就是将内存里的对象变成一连串的字节描述的过程,常见的就是变成文件。   二.什么时候需要序列化1.把内存中的对象状态保存到一个文件或者数据库中的时候2.用套接字在网络上传送对象的时候   三.如何实现序列化(Java对象序列化)  自己实现一个person类,定义一些变量,如果要对Person进

2020-07-01 18:43:04 204

原创 Java基础IO(流的概念)

流的概念  流: 在Java中所有的数据都是使用流读写的。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质就是数据传输,根据数据传输特性将流抽象为各种类。  ①按照流向分:输入流,输出流  ②按照处理数据的单位分:字节流(8位的字节);字符流(16位的字节)  输入输出流 输入就是将数据从各种输入设备(文件,键盘等)中读取到内存中 输出正好相反,是将数据写入到各种输出设备(文件,显示器,磁盘等)键盘就是一个标准的输入设备,而显示器就

2020-07-01 15:29:18 149

原创 Java基础IO(对文件的操作)

一.理解文件  1.文件可以简单的理解为在外设硬盘上面保存数据的一种方式  2.文件以共可以由两部分构成:属性(文件大小,文件名,文件类型等)+内容(就是文件里面放的是什么)  3.JavaIO,对文件写入或者读取的过程称之为IO 二.File文件操作类  在java.io包之中,用File类来对文件进行操作(创建,删除,获得信息等) 1.File类的使用Java.io.File类是一个普通的类,如果要实例化对象,则常用到两个构造方法方法解释public File(S

2020-06-28 18:40:53 1101

原创 多线程初阶3(单例模式,阻塞式队列,线程池和计时器)

·多线程案例  在开发中,为了提高对象的复用性,大多采用单例模式的写法以达到重复利用对象的目的一.单例模式 1.饿汉模式 可以保证多个线程下的唯一实例,类加载的时候对象就产生了(根据字面意思记,因为总是感觉到很饿,所以每次都先把对象实例化出来)class Singleton { private static Singleton instance=new Singleton(); private Singleton(){} public static Singleton ge

2020-06-28 11:53:52 262

原创 多线程初阶2(解决线程安全问题,线程间的通信)

·线程的状态一.线程状态图  理解状态的意义和各个状态的具体意思 ①NEW   线程创建之后,启动之前,简单理解就是给某人安排了工作,某人还没开始行动 ②RUNNABLE  启动线程之后,处于可运行即runnable状态,待系统调度器给线程分配了cpu时间后,线程就处于Running状态 ③TIMED_WAITING   超时等待状态,如触发了sleep方法后,线程进入此状态,随后由计时器触发进入Runnable状态,它可以在等待指定时间后自行返回 ④WAITING  

2020-06-22 17:54:06 135

原创 多线程初阶1(线程概念,Thread类及常见方法,线程状态)

 线程  一.线程概念  场景:如果某大型公司委托银行办理业务,既要存款转账,福利发放又要缴纳各种费用。此时业务量巨大,银行一个工作人员可能就忙不过来了,为了让业务更快,更好的办理好,工作人员又找来两个同事一起帮忙,三个人分别负责完成一个项目,此时,就有三个执行流共同完成任务,但本质上三个执行流都是为了完成一家公司的业务。这种情况就称为多线程,将一个大任务分解成不同小任务,交给不同的执行流去分别执行。  进程是系统分配资源的最小单位。  线程是系统调度的最小单位,被包含在进程之中,是进程中的实

2020-06-20 21:56:29 215

原创 进程相关知识

 进程 一.进程概念  字面理解就是进行中的程序,对于操作系统来说,一个任务就是一个进程,进程是分配系统资源(CPU时间,内存)的实体,是具有动态特性的。  举个例子:某人去银行办理转账业务(进程),在办理业务期间,这样的任务是一直存在的且状态是变更的。而在办理转账业务之前这个任务也不是马上就可以进行,需要先抽号等待,可能前面还有很多办理业务的人,所以就有了进程等待队列,而此时抽到的号就类似于进程号,识别一个进程。  查看系统进程:可在任务管理器中查看各个进程(pid代表进程号)区别程序,进

2020-06-19 15:39:54 109

原创 IDEA配置——数据库连接配置

  1.从idea的Database面板打开数据库驱动配置  如果右边面板没有看到Database选项,可通过下述方式调试出来  2.配置数据库驱动   数据库的驱动jar包可以到官网根据自己的需要下载不同版本,如果是java链接数据库的操作,选择Connector/J,下载好的jar包放在自己可以找到的路径下,之后如上图第4步,点击+号时找到jar包加进去就可以点击进入官网    3.打开数据库连接配置      3.配置数据库连接        总结起来主要是

2020-06-11 17:43:10 5455

原创 Map,Set知识点

一.了解搜索  1.概念及使用场景 Map和Set是一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。常见的搜索方式有:  ①直接遍历:时间复杂度为O(N),元素如果多的话效率会很慢  ②二分查找:时间复杂度为O(log2N),前提是搜索前必须要求序列是有序的  上述查找方式比较适合静态类型的查找,即一般不会对区间进行插入和删除操作,而现实情况中的查找如:根据...

2020-06-01 17:07:52 102

原创 并发编程的三大特性——原子性,可见性,有序性

一.原子性    火车售票系统例子:  当客户端A检测到还有票时,执行卖票操作,还没有执行更新票数的操作时客户端B检查了票数,发现大于0,于是又进行了一次卖票操作。这就出现了同一张票被卖了两次的情况。  什么是原子性?  可以将一段代码想象成一个房间,每个线程就是要进入这个房间的人。如果A进入到这个房间后,还没有出来,B也是可以进入此房间的,打断A在房间里的隐私。此时就是不具备...

2020-03-15 21:39:41 1113

原创 二叉树的前序,中序,后序遍历(非递归+递归)

一.遍历思路分析篇 1.了解树的结构:(思路都以下图树为例子)详情参照:二叉树基本概念 2.明白三种方法的遍历规则:   1>.前序遍历规则:根节点->左子树->右子树  如上图:根节点为1,所以遍历1,根节点遍历完去遍历根的左子树,左子树是以2为根的树,所以先遍历根2,再去遍历以2为根的左子树,遍历4,以4为根的左右子树都为空,返回再去遍历以2为根的右子树5,5...

2020-03-14 22:21:13 605

原创 如何用栈来模拟队列,如何用队列模拟栈??

    首先要明白栈和队列两者之间的不同栈是一种先进后出的数据结构队列是一种先进先出的数据结构  分析完两者的结构特点之后再进行模拟 一.用栈模拟实现队列    用栈模拟队列,就要完成队列的一些基本操作:offer(x) – 将一个元素放入队列的尾部。poll() – 从队列首部移除元素。peek() – 返回队列首部的元素,但不删除。isEmpty() – 返回队列是否...

2020-02-22 14:23:16 2431

原创 List应用——模拟扑克牌(构造扑克牌及洗牌)

    一.首先分析扑克牌,它的主要信息就是花色以及牌面值,所以可以写一个类来完成对扑克牌信息的封装。  二.对扑克牌信息封装好后就是对扑克牌进行一系列操作了,如创建一副牌以及洗牌操作等。   ①构造扑克牌:构造扑克牌其实很简单,一共有四个花色,每个花色有13张牌,所以两层for循环就可以,外层for循环用来循环四个花色,内层for循环就是1-13的牌面,每循环一次就将一张牌添加到Arra...

2020-02-19 14:17:57 626

原创 Java泛型的使用

 一.泛型的引入  观察下列模拟实现顺序表的代码1:public class MyArrayList { private int[] array; // 保存顺序表的元素,即int类型的引用 private int size; // 保存顺序表内数据个数 public void add(int o) { //尾插代码...

2020-02-16 17:01:53 163

原创 循环队列:判断队列空和满的3种方法

 一.少用一个存储位置 第一种情况:当队列为空时条件:rear == front当队列满时条件为:rear+1 == front    上述方式对于上述图是适用的,但如果出现了有下标标识,上述判断条件就不适用了。比如下图有下标了,当队列满时,显然条件就不能判断了,就要用到另一种判断。 第二种情况:当队列为空时条件:rear == front当队列满时条件为:(rear+1)...

2020-02-14 19:32:18 54550 10

原创 小型电话薄管理系统(Mysql数据库)

  学习完Java的基础内容与Mysql相关内容,用一个小型的电话薄管理系统来检验巩固一下所学的知识。     首先分析一下电话薄管理系统,电话薄内存储了用户的姓名,电话号码,地址等信息,向数据库中写入或者操作这些数据就要先在数据库中建立一个自己要用的库和建相应的表来存储信息,建完数据库和表后就可以通过Java程序连接数据库进而来完成对数据库的相关操作(增删改查)  我将小型的电话薄管理系...

2020-02-12 19:45:11 1202

原创 使用断言

断言 1.断言的概念  若确信某个属性符合要求,并且代码的执行依赖于这个属性。比如:需要计算 double y=Math.sqrt(x);  上述可以确信的是x是一个非负数值。但是还是希望进行检查,以避免让“不是一个数”的数值参与计算操作。在这里可以抛出异常来处理这个问题,但是异常处理的代码在测试完毕之后不会自动删除,如果代码中含有大量的这种检查,程序运行起来也会很慢。  断言机制就是...

2020-02-10 18:11:23 1130

原创 JVM——深究HotSpot虚拟机中对象的创建和储存布局

一.对象的创建   在虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载,解析和初始化过。如果没有,就要先执行相应的类加载过程。  在类加载检查通过后,接下来虚拟机将为新生对象分配内存,对象所需内存大小在类加载完成后便可以完全确认。为对象分配空间就相当于将一块确定大小的内存从Java堆中划分出来,划分空间方式...

2020-02-09 15:20:42 175

原创 JVM------垃圾收集算法

整理自《深入理解Java虚拟机》   垃圾收集算法 1.标记——清除算法2.复制算法3.标记——整理算法4.分代收集算法  一.标记——清除算法   此算法分为“标记”和“清除”两个阶段:①首先标记出所有需要回收的对象②将标记的对象进行统一回收   此算法的不足之处:①效率问题,标记和清除两个过程效率都不高②空间问题,标记清除之后会产生大量不连续的空间,导...

2020-02-08 20:53:41 72

原创 复杂链表的复制(深拷贝)

题目描述:   给定一个链表,每个结点包含一个额外增加的随机指针,该指针可以指向链表中任何结点或者空结点,要求返回这个链表的深拷贝。  思路分析:    1.破坏需要复制的复杂链表,将新老节点串成一个单链表的形式  2.解决random的指向问题(重要代码:cur.next.random=cur.random.next)  3.完成上述结点处理已经完成,最后一步就是将链表拆分开来...

2020-02-07 22:45:59 745 1

原创 Java基础知识点梳理1

  1.面向对象的特征都有哪些?①抽象  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分的注意与当前目标有关的方面。抽象并不打算了解全部过程,而是只选择其中一部分,暂时不用部分细节。②封装  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算机始于这个基本概念,即现实世界可以被描述成一系列完全自治,封装的对象,这些对象通过一个受保护的接口访问其他对象...

2019-12-29 11:27:12 103

原创 数据库中的数据类型(修饰字段)

    在数据库建表时,字段要根据实际情况来进行选择,比如姓名可以用VARCHAR(SIZE),成绩可以用INT(都是整数的情况下),不同的字段类型的选择也是不同的。 一.数值类型分为整型和浮点型  二.字符串类型   三.日期类型常用的数据类型:INTDECIMAL(M,D):浮点型VARCHAR(SIZE):字符串类型TIMESTAMP:日期类型...

2019-12-08 09:16:26 534

原创 数据库和表的基本操作(创建,删除等)

 一.数据库的基本操作 1.显示当前数据库 SHOW DATABASES;可以显示当前都创建了哪些数据库  2.创建数据库CREATE DATABASE [IF NOT EXISTS] db_name [create_specification…] create_specification:    [DEFAULT]CHARACTER SET charset_n...

2019-12-07 22:42:31 804

空空如也

空空如也

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

TA关注的人

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