自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (1)
  • 收藏
  • 关注

原创 探索式测试

一、探索式测试探索式测试最适用于敏捷开发过程的web应用程序。这些程序开发周期很短,基本没有时间可以编写正式的测试脚本。产品功能变化很快,原来的测试用例可能很快失效,那为什么写?更多的时间用于实际测试而不是维护测试用例。探索式测试的缺点:没有重点,漫无目的,对某些功能重复测试,在多人测试团队该情况就更严重了。木有文档,怎么保证测试覆盖率?这里要强调指导方法的重要性了局部探索式测试法...

2019-03-19 14:26:56 767

原创 项目流程

一、模板项目1、模板开发项目费用固定,且界面排版固定、功能固定,只限更换文案及图片。2、产品经理一对一充分了解客户需求,确定需求3、设计人员根据客户提供的素材对项目进行搭配设计,客户对设计图进行最终确认4、技术人员基于模板进行开发5、测试人员对项目进行功能测试、性能测试、兼容测试,为产品的改进和上线提供保障6、客户查看确认无其他问题后,产品上线,交易成功二、定制项目...

2019-02-25 13:49:34 251 1

原创 python迭代

一、迭代1、迭代的概念使用for循环遍历取值的过程叫做迭代2、可迭代对象使用for循环遍历取值的对象叫做可迭代对象,比如:元祖、列表、字典、集合、range、字符串3、判断对象是否是可迭代对象#元组、列表、字典、字符串、集合、range都是可迭代对象from collections import Iterable#判断对象是否是指定类型result = isins...

2019-02-15 20:00:25 264

原创 对多进程、多进程以及协程的理解

一、进程:一个运行的程序(代码)就是一个进程。没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的空间,所以进程间数据不共享,开销大。二、线程:调度执行的最小单位,也叫执行路径,不能独立存在,依赖进程存在一个进程至少有一个线程,叫主线程,而多个线程共享内存(数据共享,共享全局变量),从而极大地提高了程序的运行效率三、协程:是一种用户的轻量级线程,协程的调度完全有用户控制。...

2019-02-13 22:54:14 253

原创 jmeter实现参数化

一、Jmeter实现参数化参数化:在实际中我们需要对某些数据进行可变处理,此时我们就可以通过参数化来完成,在jmeter当中存在多种实现方式1、用户参数实现参数化(1)在请求的前面添加前置处理——用户参数(2)在用户参数当中设置相应的变量名和变量值,名字和值都可以存在多个(3)在具体的请求里去使用相应的变量【在jmeter里同样是${变量名}的形式来使用变量】(4)...

2019-01-24 15:35:33 522 1

原创 jmeter工具功能界面布局

一、使用jmeter进行接口测试1.1  问题:         执行100次         50个请求同时请求1.2  使用jmeter的解决方案(1)添加【测试计划】(2)基于添加的测试计划添加【线程组】,循环次数设置为100次(3)在【取样器】中基于线程组添加 HTTP请求(4)在【监听器】基于线程组添加【察看结果树】(5)在监听器基于线程组添加【聚合报...

2019-01-22 17:15:40 583

原创 软件测试流程

一、项目测试的基本的流程1、搭建测试环境2、快速熟悉项目3、编写测试计划4、编写测试方案5、设计、编写、执行测试用例6、测试报告二、搭建测试环境1、部署服务器需要安装的软件(1)操作系统(2)网络服务器软件(3)数据库软件(4)语言环境等等2、部署测试环境LNMP:Linux+Nginx+Mysql+phpWAMP:Windows+Apa...

2019-01-22 11:36:36 299

原创 快速排序

一、快速排序又称为交换排序,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,一次达到整个数据变成有序序列步骤为:(1)从数列中挑选出一个元素,称为“基准”(2)重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准大的摆在基准的后面(相同的数可以放到任...

2019-01-18 21:24:22 206

原创 希尔排序

一、希尔排序也称为缩小增量排序,是直接插入排序算法的一种更高的改进版本。希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止二、希尔排序分析def shell_sort(alist): n = len(alist) #初始步长 ...

2019-01-18 17:58:55 105

原创 插入排序

一、插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间二、插入排序分析def insert_sort(alist): #从第二个位置,即下标为1的元素开始向前插入 for i in range(1,len(alist)): ...

2019-01-18 16:49:14 199

原创 选择排序

一、选择排序首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已盘排序序列的末尾。以此类推,直到所有元素均排序完成选择排序的主要优点与数据移动有关。如果某个元素为与正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,他们当中至少有一个将被移动到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在...

2019-01-18 16:21:19 190 1

原创 冒泡排序

一、冒泡排序重复的遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有在需要交换,也就是说该数列已经排序完成。二、冒泡排序算法的运作如下(1)比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数(3)针对所有的元素重复...

2019-01-18 15:59:08 95

原创 测试工具jmeter介绍

一、测试工具基本介绍1、为什么使用测试工具(1)我们想让用户去联系请求某一个接口100次(2)我们现在要求100个用户同时去请求一个接口(3)在实际的测试当中往往会遇到连续的测试操作(4)在实际的测试当中有很多操作是我们通过手工或者简单的插件是没有办法很好实现的,因此我们就可以考虑去使用功能强大的测试工具2、Jmeter基本定义:它就是一款由apache开发和维护的一款开源...

2019-01-12 18:09:54 407

原创 接口测试基础

一、接口基本介绍1、为什么学习接口在当前的程序开发中更多的会使用到面向接口进行开发2、程序开发中为什么使用接口(1)有了接口就相当于定义了一套标准,可以规范我们的开发过程(2)接口可以保证数据安全(3)接口可以让我们的项目更加容易迁移3、接口是什么我们可以将接口理解为是不同操作之间啊顺利交互的标准二、接口测试1、定义:在程序测试中我们可以将接口测试理解为是验...

2019-01-12 16:03:44 131

原创 双向链表

1、双向链表结构分析每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。 2、操作is_empty() 链表是否为空 length() 链表长度 travel() 遍历链表 add(item) 链表头部添加 append(item) 链表尾部添加 insert(pos, item) 指定位置...

2019-01-10 18:22:07 95

原创 webdriver-元素定位

一、为什么要学习元素定位方式?1、让程序操作指定操作,就必须先找到此元素2、程序不像人类用眼睛直接定位到元素3、webdriver提供了八种定位元素方式二、webdriver元素定位方式1、id:id属性2、name:name属性3、class_name:class属性4、tag_name:tag标签5、link_text:超链接文本6、partial_li...

2019-01-10 17:47:09 193

原创 自动化测试运行脚本(python)

自动化测试脚本,以QQ空间为例账号、密码、用户名根据实际情况填写1、写测试用例代码import unittestfrom selenium import webdriverimport time# 创建测试类——继承unittest.TestCaseclass TestSpace(unittest.TestCase): # 方法类别的处理器 # 每个测试用...

2019-01-10 12:25:04 10606

原创 自动化测试——窗口截图、验证码处理

一、截图说明:把当前操作页面、截图保存到指定位置1、为什么要窗口截图说明:自动化脚本是由程序去执行的,因此也有时候打印的错误信息并不是十分明确。如果在执行出错的时候对当前窗口截图保存,那么通过图片就可以非常直观地看到出错的原因2、窗口截图说明:在WebDriver类库中,提供了截图方法,我们只需要调用即可:方法:(1)get_screenshot_as_file(imgpa...

2019-01-10 10:50:00 586

原创 自动化测试——frame表单切换、多窗口切换

一、frame表单frame:HTML页面中的一中框架,主要作用是在当前页面中指定区域显示另一页面元素;             (HTML语言中,frame/iframe标签为表单框架)1、frame表单切换说明:在WebDriver类库中封装了HTML页面中使用frame表单框架技术定位的方法方法:(1)driver.switch_to.frame('myframe1'...

2019-01-09 20:36:18 2706

原创 自动化测试——下拉选择框、警告框、滚动条操作

一、下拉选择框1、什么是下拉选择框说明:下拉框就是HTML中<select>元素2、为什么学习下拉选择框?(1)传统代码实现:                      定位option选项(8中定位方式)(2)问题:                       1、传统定位根据option选项的值来判断                       2、...

2019-01-09 20:00:07 2987 1

原创 自动化测试——设置元素等待

一、元素等待1、什么是元素等待?概念:webdriver定位页面元素时如果未找到,会在指定时间内一直等待的过程2、为什么要设置元素等待?(1)由于网络速度原因(2)电脑配置原因(3)服务器处理请求原因3、元素等待类型(1)显式等待(2)隐式等待二、显式等待概念:使webdriver等待指定元素条件成立时继续执行,否则在达到最大时长时抛出超时异常(Time...

2019-01-09 13:56:15 465 1

原创 自动化测试——元素操作方法

一、为什么要学习操作元素的方法?1、需要让脚本模拟用户给浏览器指定元素输入值2、需要让脚本模拟人为删除元素的内容3、需要让脚本模拟点击按钮二、元素常用操作方法1、clear()            清除文本2、send_keys()   模拟输入3、click()             单击元素三、浏览器常用方法1、webdiver             ...

2019-01-09 11:57:56 560

原创 自动化测试(一)

一、什么是自动化?1、概念:由机器设备代替人为自动完成指定目标的过程2、优点:                (1)减少人工劳动力                (2)工作效率提高                (3)产品规格统一标准                (4)规模化(批量生产)二、什么是自动化测试?1、概念:让程序代替人为验证程序功能的过程三、为什么...

2019-01-08 16:54:10 260

原创 单向链表

单向链表的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。 节点实现class SingleNode(object): """单链表的结点""" def __init__(self,item): # item存放数据元素 self.item = item ...

2019-01-07 23:09:46 132

原创 常见时间复杂度

函数举例 阶 12 O(1) 2n+3 O(n) 3n2+2n+1 O(n2) 3log2n+1 O(logn) 3n+3nlog2n+1 O(nlogn) 3n3+2n2+n+1 O(n3) 2^n O(2^n) 常见时间复杂度之间的关系O(1) < O(logn) < O(n) &l...

2019-01-07 17:21:20 304

原创 数据结构与算法基本概念理解

一、算法的概念算法是独立存在的一种解决问题的方法和思想对于算法而言,实现的语言并不重要,重要的是思想二、算法的五大特性1、输入:算法具有0个或多个输入2、输出:算法至少有1个或多个输出3、有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间内完成4、确定性:算法中的没有一步都有确定的含义,不会出现二义性5、可行性:算法的每一步都是可...

2019-01-07 17:13:10 279

原创 python的传参是传值还是传址

传值还是传址要分具体情况:不可变参数用值传递,通过拷贝进行传递的a = 1def f(a): a = a+1 return ab= f(a)print(a)print(b)# 1 # 2 可变参数是引用传递的a = [1,2]def f(a): a[0] += 1 return ab = f(a)print(a)...

2019-01-05 21:25:11 1391

原创 python中如何生成随机数

在python中用于生成随机数的模块是random,在使用前需要import1、生成一个0-1之间的随机浮点数:random.random()2、生成[a,b]之间的浮点数random.uniform(a,b)3、生成[a,b]之间的整数random.randint(a,b)4、在指定的集合[a,b)中,以step为基数随机取一个数random.randra...

2019-01-05 20:41:00 787 1

原创 python中赋值、浅拷贝、深拷贝

Python中的赋值、浅拷贝和深拷贝:赋值:在python中, 对象的赋值就是简单的对象引用, 这点和C++不同, 如下所示: a = [1,2,"hello",['python', 'C++']] b = a在上述情况下, a和b是一样的, 他们指向同一片内存, b不过是a的别名, 是引用。我们可以使用b is a 去判断, 返回True, 表明他们地址相同, 内容相同, 也可...

2019-01-05 20:13:26 110

原创 匿名函数

例:求x的平方def f(x):     return x*x匿名函数:f = lambda x : x*x 1、什么是lambda函数?lambda函数是一个可以接收任意多个参数(包括可选参数)并且返回单个表达式的函数2、匿名函数的好处?用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。lambda 函数比较轻便, 即用即仍, 很适合需要完成一...

2019-01-05 17:41:50 183 1

翻译 docker仓库

1、仓库简介仓库就类似于我们在网上搜索操作系统光盘的一个镜像站这里的仓库指的是docker镜像存储的地方docker仓库有两大类:公有仓库:docker hub、docker cloud等私有仓库:registry、harbor等docker私有仓库:不安全的安全的        传输数据携带tls标识和仓库相关的命令:docker login [仓库名...

2018-12-31 15:29:44 199

翻译 docker容器

1、容器简介容器是什么?容器就类似于我们运行起来的一个操作系统,而且这个操作系统启动了某些服务这里的容器指的是运行起来的一个docker镜像2、查看、启动查看容器命令格式:docker ps注意:管理docker容器可以通过名称,也可以通过IDps是显示正在运行的容器,-a是显示所有运行过的容器,包括已经不运行的容器启动容器启动容器有三种方式:...

2018-12-30 22:17:56 113

翻译 Docker镜像

(1)docker镜像是什么它是一个只读文件,就类似于我们安装操作系统时所需要的那个iso光盘镜像,通过运行这个镜像来完成各种应用的部署。这里的镜像就是一个能被docker运行起来的一个程序(2)搜索、查看、获取搜索镜像命令格式:docker search [image_name]获取镜像命令格式:docker pull [image_name]获取的镜...

2018-12-29 21:35:16 111

翻译 Docker基础

1、docker是什么?docker 是一个开源的容器引擎,它基于LXC容器技术,使用Go语言开发源代码托管在github上,并遵从Apache2.0协议docker 采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。简单来说,docker就是一种快速解决生产问题的一种技术手段2、docker特点三大理念:构建:龙珠里的胶囊,将你需要的场...

2018-12-29 20:52:20 91

原创 Linux命令面试题

1、Linux下ls命令做什么用的,常用参数有哪些?ls是list的意思,查询当前文件或路径ls -ltrha2、Linux下怎么查看硬盘剩余?df -h3、Linux下怎么查看一个目录的大小?du -sh4、Linux下vim编辑器,怎么快速到第一行,怎么快速到最后一行?ggshift+g5、Linux下,用什么命令查找一个文件?find6、Lin...

2018-12-29 20:00:26 1840

转载 Nginx的工作原理

 在正式运营环境下,部署Nginx时都是使用一个master进程来管理多个worker进程,一般情况下,worker进程的数量与服务器上的CPU核心数相等。每一个worker进程都是繁忙的,它们在真正地提供互联网服务,master进程则很“清闲”,只负责监控管理worker进程。worker进程之间通过共享内存、原子操作等一些进程间通信机制来实现负载均衡等功能Nginx是支持单进程(maste...

2018-12-26 15:16:19 120

原创 GIL与线程互斥锁

1、GIL与线程互斥锁的区别(1)线程互斥锁是python代码层面的锁,解决了python程序中多线程共享资源的问题(2)GIL是python解释器层面的锁,只在CPython解释器中存在,解决了解释器中多线程竞争资源的问题2、python的线程虽然是真正的线程,但解释器可执行代码时,有一个GIL锁,任何python线程执行前,必须先获取GIL锁,然后每执行一定字节码,解释器就会释放G...

2018-12-20 10:13:51 154 2

原创 全局变量与局部变量

局部变量局部变量就是函数内部定义的变量其作用范围是这个函数内部,只能在这个函数中使用,在函数外部不能使用因为其作用范围是自己的函数内部,所以不同的函数可以定义相同名字的局部变量局部变量的作用:为了临时保存数据需要在函数中定义变量来进行存储当函数调用时,局部变量被创建,当函数调用完成后这个变量就不能够使用了def A(): a = 300 print(a) ...

2018-12-20 08:45:08 138

原创 字符串列表的互相转换

将字符串helloworld转换为列表['helloworld']字符串.split("分隔符")返回的是列表类型的对象str1 = 'helloworld'list1 = str1.split()print(list1) #['helloworld']将列表['helloworld']转换为字符串helloworld拼接字符串.join(列表)返回的是字符串类型的对象...

2018-12-19 10:20:20 1335

原创 python3Django项目——微博第三方登录

适合于python3的微博第三方登录的相关代码:sina.pyimport jsonimport urllibimport reclass OAuth_Base(object): #基类,将相同的方法写入到此类中 def __init__(self,client_id,client_key,redirect_url): #初始化,载入对应的应用id、秘钥和回调地...

2018-12-14 21:50:34 1418

allpairs工具

软件测试正交实验法设计测试用例,正交工具allpairs 正交实验法:一组测试用例中能够保证至少一个用例中的每个其他变量的每个取值都配对过

2019-01-04

空空如也

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

TA关注的人

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