自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Charles了解

问题:下载后无法打开?查看本机是否安装java环境:cmd进入后查看安装好后若还无法打开查看是否有jre文件夹,新版的java需要自己安装jre激活:网上找的激活码Registered Name: https://zhile.ioLicense Key: 48891cf209c6d32bf4了解作为抓包工具与fidder相比,优点:不会自己更改客户端的请求、用户更改请求中的某些字段更加方便、页面的显示更加简洁原理:与fidder相似使用较多的弱网测试:可以仅对某一个host生效

2020-09-06 14:53:22 174

原创 协程实现生产者消费者模型

协程协程,又称微线程,纤程。区分进程、线程、协程:子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序调用是通过栈实现的,一个线程就是执行一个子程序。不会涉及到内核态与用户态的切换。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用和子程序不同。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。可以说:子程序就是协程的一种

2020-07-16 20:07:55 559

原创 项目:基于HTTP的点餐系统

点菜系统集无线、网络、嵌入式技术、人工智能等技术于一体的无线手持终端。适用于餐饮,酒店、咖啡厅等场所的餐台管理、点菜录单、结算、信息反馈与传递。提高服务效率和顾客满意程度

2020-06-30 21:04:57 959

原创 HTTPS证书原理

使用内网时,发现对于http协议的网站正常访问,但https网站访问异常,这种情况需要安装内部https证书并关掉该wifi的手动代理因为正式环境HTTPS证书泄露可能导致严重的安全问题,因此需要收拢正式环境HTTPS证书权限。开发和测试环境使用自签名证书。回顾HTTP和HTTPS两者都使用TCP协议,都用于在Web浏览器和网站服务器之间传递信息。区别:HTTP默认使用TCP协议80端口,HTTPS默认使用443端口。HTTPS也是经由HTTP来进行通信,只是多了加密数据包的流程(SST/

2020-06-19 14:08:03 487

原创 函数式编程

了解首先,函数式编程是一种编程范式即编写程序的方法。在编程的过程中,可以在函数传参时传入一函数、赋值给变量、也可以在函数返回时返回一个函数。在使用时需要注意:尽量值产生需要的值不改变全局变量的值不依赖于外部变量或"状态",只依赖输入的参数,任何时候只要参数相同,引用函数所得到的返回值相同的使用传入的参数来保存状态优点:减少代码的重复,开发快易于理解每个函数独立、单元测试更加简单不用考虑死锁,因为不修改变量,存结果也只是存到参数中【易于实现并发看起来类似于C++中的函数指针,只是

2020-06-18 21:22:06 186

原创 用例设计理论

2020-06-05 15:59:40 146

原创 剑指offer【19】

面试题19. 正则表达式匹配请实现一个函数用来匹配包含’. ‘和’*‘的正则表达式。模式中的字符’ . ‘表示任意一个字符,而’ * '表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab * ac * a"匹配,但与"aa . a"和"ab * a"均不匹配。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa

2020-05-31 13:45:37 178

原创 剑指offer(16-18)

day5面试题16. 数值的整数次方面试题17. 打印从1到最大的n位数面试题18. 删除链表的节点面试题16. 数值的整数次方实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释:

2020-05-27 16:45:28 110

原创 剑指offer【14.15】

面试题14- I. 剪绳子给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0] * k[1] * … * k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3

2020-05-26 17:05:51 113

原创 剑指offer【11-13】

day3面试题11. 旋转数组的最小数字面试题12. 矩阵中的路径面试题13. 机器人的运动范围面试题11. 旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0排序数组的查找问题首先考虑使用二分法解决,将遍历的

2020-05-25 16:04:01 117

原创 BFS和DFS

BFS广度优先搜索:顾名思义,广度优先搜索的思想在于从一个顶点V0开始,辐射状地优先遍历其周围较广的区域,比如树的层序遍历就是BFS的一种对于下图,从A开始遍历图的存储:graph={"A":["B","C"],"B":["A","C","D"],"C":["A","B","D","E"],"D":["B","C","E","F"],"E":["C","D"],"F":["D"]}对于点A,下一个可以读B也可读C,所以说BFS所得结果是不唯一的。且对于A,读到下一个节点后就可以丢

2020-05-24 22:14:19 155

原创 剑指offer【6-10】

day2面试题06. 从尾到头打印链表面试题07. 重建二叉树面试题09. 用两个栈实现队列面试题10- I. 斐波那契数列面试题10- II. 青蛙跳台阶问题面试题06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000最终返回的是vector数组,那么首先想到vector的reverse操作:class Solution {pu

2020-05-23 16:41:49 229

原创 剑指offer【3-5】

面试题03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000解法1:先排序,如果有两个相邻的数相等,就说明数组中有重复:class Solution {public: int

2020-05-22 21:08:13 130

原创 五种典型的IO模型

典型IO模型阻塞IO非阻塞IO信号驱动IO异步IO多路转接IO多路转接IO的模型阻塞、非阻塞、同步、异步首先,IO过程是什么?-----等待+数据拷贝发起IO调用等待IO条件就绪将数据拷贝到缓冲区中进行处理阻塞IO为完成IO发起调用,若当前不具备IO条件则一直等待,这个过程不干其他事情,条件满足后才进行操作大部分的IO都是阻塞IO优:流程控制特别简单,清晰:一个IO完了才会进入下一个IO缺:对于资源没有充分利用,大部分时间都在等待IO就绪。为弥补缺点提出非阻塞IO非阻塞IO为完成

2020-05-21 21:28:18 250

原创 回顾动态规划

对于动态规划,一直感觉会了,但又不怎么会,难点的题也做不到自己完成,今天再总结一下:首先动态规划到底是干啥的?现在想来,应该是用数组记录递归中的结果【第一次接触动态规划就是斐波那契了吧然后动态规划要做到每次选最佳方案【OPT】怎么得到这个OPT呢?对于下一个数,我们可以选择、也可以不选,如果选择,那么OPT就是前一个不冲突的OPT+这个数;如果不选,那么OPT不会变,还是之前的OPT。这里举个栗子:对一数组{1,2,4,1,7,8,3},选择不相邻的数,使其相加所得和最大计算OPT(i):

2020-05-17 18:24:50 126

原创 jenkins了解【持续集成】

持续集成的核心价值在于:持续集成中任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、 费用和工作量持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心持续部署:部署:大型项目开发有多个模块,为确保每个模块可用,要保证这模块在

2020-05-16 20:44:45 293

原创 loadrunner了解及使用流程

了解下载后发现三个图标:Virtual User、Controller、Analysis使用时首先用Virtual User进行脚本录制,对用户名、密码参数化【使多个用户运行同一脚本,在本地修改用户名密码】之后使用Controller设置场景、监控运行场景,收集数据到Analysis最后用Analysis分析数据,生成图表/报告LG是模拟多用户并发访问被测试系统的组件。模拟多用户访问系统的前提是已经具备了虚拟用户脚本,VuGen是录制和编辑虚拟用户脚本的工具,录制好的脚本是不同语言表达的文本

2020-05-15 17:19:11 2587

原创 系统测试——软件测试的艺术

系统测试有着特定的目的:将系统或程序与其初始目标进行比较,给定目标后有两含义:系统测试不局限于系统,若产品是一个程序:系统测试就是试图说明程序作为一个整体是如何不满足其目标的过程根据定义,若产品没有一组书面的、可度量的目标,系统测试就无法进行在寻找程序与其目标之间的不一致的过程中,应重点注意那些在设计外部规格说明的过程中所犯的转换错误。系统测试因而成为一种关键的测试类型,因为就软件产品本身、所犯错误的数量及其严重性而言,开发周期的这个阶段是最易出错的这也暗示与功能测试的情况不同,外部规格说明不能

2020-05-14 16:41:55 1527

原创 模块测试(单元测试)——软件测试的艺术

是大型程序测试的第一个步骤【大型程序即超过500条语句的程序】了解模块测试是对程序中的单个程序、子程序/过程进行测试的过程【并非对整个程序】:关注点在较小单元,是一种管理组合的测试元素的手段减轻调试的难度,把错误定位到一个小范围可同时测试多个模块,将并行工程引入软件测试模块测试的目的在于将模块的功能与定义模块的功能规格说明或接口规格说明进行比较。揭示出模块与规格说明的矛盾测试用例的设计首先需要模块的规格说明与模块源代码模块测试总体面向白盒测试【若对大的程序测试,不容易展开,也便于在后续

2020-05-13 16:37:45 5456

原创 性能测试了解

五个WWHY: 为什么要进行性能测试应用程序是否能够很快的响应用户的要求?应用程序是否能处理预期的用户负载并有盈余能力?应用程序是否能处理业务所需要的事务数量?在预期和非预期的用户负载下,应用程序是否稳定?是否能确保用户在真正使用软件时获得舒服的体验?问题的根源是什么?在多种平台上的数百个服务器异构系统、多种应用数千个工作站局域网、广域网和其他分类型的分布式网络体系结构交...

2020-05-09 21:43:57 756

原创 虚表与虚基表

2020-04-30 14:09:47 290

原创 重载、重写、重定义

2020-04-29 13:43:39 90

原创 unittest框架的使用

了解unittest 是python 的单元测试框架,unittest 单元测试提供了创建测试用例,测试套件以及批量执行的方案,unittest 在pyhton中自带了,直接import unittest使用作为单元测试的框架, unittest 也是可以对程序最小模块的一种敏捷化的测试。在自动化测试中,虽然不需要做白盒测试,但是必须需要知道所使用语言的单元测试框架。利用单元测试框架,创建一个...

2020-04-25 22:08:11 249

原创 cookie和session——HTTP状态信息存储

首先,HTTP协议是一种无状态的协议,也就是说web浏览器与服务器间不会建立一个长久的连接,对于事物处理没有记忆的能力,那么在使用过程中可能会一些不便。比如说打开淘宝的页面,不可能每添加一个商品就要输入一遍账号及密码。所以我们需要把状态信息存储起来以方便后面的使用cookie和session都是用来保存状态信息的,都是保持客户端状态的机制,都是为解决HTTP无状态的问题做出的努力请求头Cook...

2020-04-24 15:31:54 424

原创 webdriver常用API的使用总结

要使用selenium的webdriver里的函数,首先把包导进来:from selenium import webdriver导入使用浏览器的驱动:driver = webdriver.Chrome()元素的定位对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象一个对象就是一个人一样,有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道...

2020-04-22 19:18:46 529

原创 Python入门(从C++到Python)

Python中句尾不用加分号不用管缩进单行注释注释为#多行注释用’’’’’’使用布尔类型True/False首字母必须大写输出为print,else if为elif定义变量不用声明类型,函数也是函数定义直接def+name(参数),参数也是不用声明类型print('Hello,\n world')#用r''表示''内部的字符串默认不转义print(r'''hello,\nw...

2020-04-20 15:00:52 217

原创 自动化测试(web自动化测试)

自动化:由机器设备代替人为完成制定目标的过程优点:提高工作效率减少劳动力产品规格同一标准批量生产自动化测试让程序代替人为去验证程序功能的过程,即在预设条件下运行程序系统流程确定、搭建自动化框架编写测试用例,将其转化为soupui(接口)—>自动化测试脚本执行自动化测试脚本输出执行结果报告完善自动化测试脚本解决的问题回归测试:更改后【项目发新版本】对之前...

2020-04-19 20:44:17 302

原创 禅道学习笔记

官方:敏捷瀑布、敏捷流程图流程主要分为四条线:产品线、项目线、开发线、测试线产品线产品经理收集产品需求【收集线上用户的反馈】,建立产品,对产品整理研发计划并整理每个计划中需要完成的需求项目线项目经理进行立项,关联产品,确定本次项目中需要完成的产品需求创建本次项目研发的团队【研发、测试人员】,分解任务【要求实现的功能点及限制时间】研发线领取任务每日站会【敏捷思想scrum】...

2020-04-19 18:24:09 389

原创 Linux进程管理总结【思维导图】

Linux进程总结Linux线程总结进程间通信信号读者写者模型生产者消费者模型哲学家就餐问题多进程编程

2020-04-15 14:11:34 322

原创 C、C++的区别【思维导图】

POP、OOP的区别

2020-04-14 13:33:23 153

原创 static【C/C++思维导图】

2020-04-13 16:23:31 96

原创 动态规划及练习

理解动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,供后面使用这些结果动态规划具备了以下三个特点把原来的问题分解成了几个相似的子问题所有的子问题都只需要解决一次储存子问题的解动态规划的本质,是对问题状态的定义和状态转移方程的定义(状态以及状态之间的递推关系)动态规划问题一般从以下四个角度考虑...

2020-04-13 14:19:40 138

原创 传输层基础知识

传输层负责数据能够从发送端传输接收端端口号标识了一个主机上进行通信的不同的应用程序:在TCP/IP协议中, 用源IP、源端口号、目的IP、目的端口号、协议号这一五元组标识一个通信,查看:netstat -n端口号范围划分0~1023: 知名端口号HTTP、FTP、SSH等这些广为使用的应用层协议的端口号都是固定的1024~65535: 操作系统动态分配的端口号客户端程序的...

2020-04-12 12:01:22 357

原创 QQ登陆测试用例

2020-04-09 14:36:41 345

原创 测试用例的设计方法总结

了解测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:(标题、)测试环境【含设备及系统】、操作步骤、测试数据、预期结果(、重要性)等要素评价标准:用例表达清楚,无二义性用例可操作性强【容易操作,可执行力强,可用工具进行测试】eg:测试10000人同时操作,用loaderrunner用例的输入与输出明确。一条用例只有一个预期结果用例的可维护性好用例对需求的覆盖率高...

2020-04-08 15:38:16 692

原创 IP基础

I P是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务不可靠:它不能保证IP数据报能成功地到达目的地。 IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区, IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(eg:TC...

2020-04-08 14:32:51 549 1

原创 应用层总结【web页面请求过程】

域名系统DNS 是一个分布式数据库,提供了主机名和 IP 地址之间相互转换的服务分布式数据库指每个站点只保留它自己的那部分数据。域名具有层次结构,从上到下依次为:根域名、顶级域名、二级域名DNS 可以使用 UDP 或者 TCP 进行传输,使用的端口号都为 53大多数情况下 DNS 使用 UDP 进行传输,这就要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性使用 T...

2020-04-07 17:26:41 304

原创 测试小总结

测试问题一般分为四类:测试生活中的一个物品测试一套软件编写代码来测试一个函数调试解决已知问题可以从功能、性能、兼容性、界面、易用性、(安全性)几个方面来测试测试用例:为实施测试而向测试的系统提供的一组集合,包含(标题)、测试环境【测试设备、测试系统】、测试数据、测试步骤、预期结果、重要性无论哪种问题,都要做好用户误用乱用的准备测试需要什么?全局观:了解软件到底是怎么回事...

2020-04-05 16:30:57 163

原创 生成器、原型模式——创建型设计模式

生成器封装一个对象的构造过程,并允许按步骤构造参考JDK 1.8 源码简易的 StringBuilder 实现:class AbstractStringBuilder { protected: char[] value; int count; public: AbstractStringBuilder(int capacity) { count = 0; val...

2020-04-04 21:49:39 239

原创 开发模型和测试模型

流程软件开发的生命周期:需求分析、计划、设计、编码、测试、运行维护软件测试的生命周期:需求分析、测试计划、【测试设计、测试开发】、测试执行、测试评估开发模型瀑布模型(Waterfall Model)瀑布模型在软件工程中占有重要地位,是其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式测试阶段处于软件实现后,意味着必须在代码完成后有足够的时间预留给...

2020-04-03 21:24:56 294

空空如也

空空如也

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

TA关注的人

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