05 2018 档案

摘要:一.自动化测试分类: 1.数据驱动: 根据数据(读取excel)来去测试的。 2.代码驱动: 测试用例都是写代码的。 3.关键字驱动: UI自动化,根据封装好的工具,输入关键字来测试,有点傻瓜式测试。 二.自动化框架:可以理解为工具的集合。日常工作中,根据工作需求,实现某些功能,封装起来。或结合其他 阅读全文
posted @ 2018-05-30 17:59 我已不爱凯蒂 阅读(784) 评论(2) 推荐(1) 编辑
摘要:因此,封装好后,可以直接实例化并调用: logs = MyLogger(date.log','dubug') logs.logger.warning(‘这个bug级别是debug级别。。。’) 控制台输出: 生成的日志文件:(因为设置的when是D,按天生成的) 阅读全文
posted @ 2018-05-29 16:29 我已不爱凯蒂 阅读(208) 评论(0) 推荐(0) 编辑
摘要:结果: 生成的日志文件:a.log,(每秒运行一次的话,每次可以生产一份备份文件)三份备份: 阅读全文
posted @ 2018-05-29 16:09 我已不爱凯蒂 阅读(172) 评论(0) 推荐(0) 编辑
摘要:一.多进程:multiprocessing模块 多用于处理CPU密集型任务 多线程 多用于IO密集型任务 Input Ouput 举例: 进程下嵌套多线程: 举例: 阅读全文
posted @ 2018-05-29 15:01 我已不爱凯蒂 阅读(174) 评论(0) 推荐(0) 编辑
摘要:守护线程: 只要主线程结束,那么子线程立即结束,不管子线程有没有运行完成。 案例: 未加守护线程:下面这段代码:先运行主线程先打印:“Done,运行完成”,然后继续休眠3秒子线程启动打印“哈哈哈”。 结果: 加守护线程:即:只要主线程结束,那么子线程立即结束,不管子线程有没有运行完成 结果:只执行了 阅读全文
posted @ 2018-05-29 14:47 我已不爱凯蒂 阅读(112) 评论(0) 推荐(0) 编辑
摘要:.join() :子线程等待主线程 下面程序运行流程: 主线程负责启动5个子线程,把每个线程放在threads list里,然后等待所有线程等待完毕后,再执行end_time = time.time()语句,实现最后计算所有线程都结束的并发时间。 运行结果:并发时间: 阅读全文
posted @ 2018-05-28 18:29 我已不爱凯蒂 阅读(193) 评论(0) 推荐(0) 编辑
摘要:1.线程是程序里面最小的执行单元。 2.进程是资源的集合。 线程是包含在进程里面的,一个进程可以有多个线程,但只要要有一个线程。 一.多线程,就是N个线程一起干活: 1.传统方式,串行,循环5次需要15s: 2.使用多线程并发的方式,节省时间: 举例:多线程爬虫,比较下并发和串行的时间: 串行方式: 阅读全文
posted @ 2018-05-28 17:25 我已不爱凯蒂 阅读(197) 评论(0) 推荐(0) 编辑
摘要:多继承时: 经典类和新式类在python3里没有任何区别,python3里面都是广度优先; 在python2里是有区别的,区别如下: 1.经典类是深度优先 2.新式类是广度优先3.python2 经典类里面不能用super 广度优先/深度优先: 阅读全文
posted @ 2018-05-28 15:51 我已不爱凯蒂 阅读(140) 评论(0) 推荐(0) 编辑
摘要:继承父类方法的几种方式: 一.重写父类的方法: 父类: 子类: 二.重写父类方法:在父类基础上,再加新的功能: 方式一:可通过调用父类方法,然后再写自己的方法来实现(特征:父类有这个方法,但是它的功能不够完善,给这个方法在原有基础上再添加一些新功能)。 子类: 方式二:可通过调用父类方法,然后再写自 阅读全文
posted @ 2018-05-28 15:43 我已不爱凯蒂 阅读(1145) 评论(0) 推荐(0) 编辑
摘要:将Redis的常用操作封装了一下: 以后拿来就好用,加油!! 阅读全文
posted @ 2018-05-28 15:01 我已不爱凯蒂 阅读(1024) 评论(0) 推荐(0) 编辑
摘要:1.属性方法 看起来像属性(变量)的一个方法 class Baby(): #定义一个类 @property #装饰器,表示hhh()是一个属性方法,可以被调用 def hhh(self): #定义一个方法 return 999 bb=Baby() #实例化 print(bb.hhh) #调用属性方法 阅读全文
posted @ 2018-05-22 18:06 我已不爱凯蒂 阅读(111) 评论(0) 推荐(0) 编辑
摘要:面向对象 1.类 class 用来描述具有相同的属性和芳芳的对象的集合,它定义了该集合中每个对象所共有的属性和方法。一个种类,一个模型。比如汽车模型。比如: #定义一个Person类 #1.类名的首字母要大写 #2.在python3里经典类和新式类没有任何区别 方式一: class Person: 阅读全文
posted @ 2018-05-22 14:11 我已不爱凯蒂 阅读(230) 评论(0) 推荐(0) 编辑
摘要:2.url解码: 阅读全文
posted @ 2018-05-21 17:40 我已不爱凯蒂 阅读(315) 评论(0) 推荐(0) 编辑
摘要:准备工作:1、在你的邮箱设置里面打开smtp服务(若有的话)2、开启邮箱授权码,记住这个授权码(连接邮箱服务时用) 1.安装yagmail模块pip install yagmail2.举例:import yagmailusername = 'sdtest@163.com'passwd = 'sd12 阅读全文
posted @ 2018-05-21 15:31 我已不爱凯蒂 阅读(232) 评论(0) 推荐(0) 编辑
摘要:内置函数的补充:1.zip:l1 = ['a','b','c','e','f','g']l2 = [1,2,3]l3=['A','B','C']L4=['牛','牛','niu']#zip,就是把俩list,合并到一起,如果想同时循环2个list的时候,for a,b,c,d in zip(l1,l 阅读全文
posted @ 2018-05-18 16:07 我已不爱凯蒂 阅读(110) 评论(0) 推荐(0) 编辑
摘要:1.什么是异常: 异常既是一个事件,一般情况下,在python无法正常处理程序时就会发生一个异常,是python对象,表示一个错误。 当python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 2.异常处理: 捕捉异常可以使用try/except语句。 3.实例举例: 阅读全文
posted @ 2018-05-18 16:05 我已不爱凯蒂 阅读(158) 评论(0) 推荐(0) 编辑
摘要:下面分别是get,post,入参json,添加cookie,添加header,上传/下载文件 的接口请求举例: import requests #导入模块 #1.发get请求 url = 'http://api.xx**.cn/api/xx/stu_info' data = {'stu_name': 阅读全文
posted @ 2018-05-15 17:21 我已不爱凯蒂 阅读(1174) 评论(0) 推荐(0) 编辑
摘要:#网络爬虫,从其他的网站上,获取一些有用的内容,存入自己的数据库,然后再展示在指定的位置。#urllib是python自带的模块1.urllib模块做网络爬虫,爬取网页: from urllib import request,parse #导入urllib模块url = 'http://www.nn 阅读全文
posted @ 2018-05-15 16:29 我已不爱凯蒂 阅读(177) 评论(0) 推荐(0) 编辑
摘要:1. cookie 保存在客户端(浏览器)上的键值对。浏览器关闭后,再次打开查看Application-->Cookies下查看访问记录,会保存用户登录的一些信息,其value是一般都是加密后的,如果不清除浏览器缓存,cookies是一直存在在浏览器端的。再次登录时不需输入用户名,密码,浏览器会将c 阅读全文
posted @ 2018-05-15 16:06 我已不爱凯蒂 阅读(125) 评论(0) 推荐(0) 编辑
摘要:第一次搭建测试环境 1、有N台服务器,Windows, Linux 2、安装依赖软件,这些需要问开发要,部署文件的具体内容,比如: java : tomcat jdk1.7 oracle/mysql redis python: nginx python3 .... 3、获取源代码(编译、打包) 4、 阅读全文
posted @ 2018-05-14 16:38 我已不爱凯蒂 阅读(538) 评论(0) 推荐(0) 编辑
摘要:2.第一个接口: get请求,直接在浏览器访问http://127.0.0.1:7777/index,如图: import flask,json # __name__,代表当前这个python文件 server = flask.Flask(__name__) #把咱们当前这个python文件,当做一 阅读全文
posted @ 2018-05-09 13:47 我已不爱凯蒂 阅读(1427) 评论(0) 推荐(0) 编辑
摘要:a.关系型数据库 7.获取文件夹下value: print(r.get('双鱼座:fancy')) 结果:b'hello' 8.删除所有的key: for k in r.keys(): r.delete(k) 以上所有操作是针对redis中的string类型。 2. 查看Key是什么类型的:prin 阅读全文
posted @ 2018-05-08 17:57 我已不爱凯蒂 阅读(6027) 评论(0) 推荐(0) 编辑
摘要:二.读Excel (导入xlrd模块) 三.修改Excel (导入xlutils模块) 修改excel时,必须先读出来,复制一份后再修改内容。 阅读全文
posted @ 2018-05-08 14:34 我已不爱凯蒂 阅读(672) 评论(0) 推荐(0) 编辑
摘要:一.补充操作数据库 1.建立游标时,指定cursor类型,使其结果返回字典: cur = coon.cursor(cursor=pymysql.cursors.DictCursor) #建立游标的时候指定了游标类型,返回的就是一个字典 [{},{},{}] #cur = coon.cursor() 阅读全文
posted @ 2018-05-08 14:24 我已不爱凯蒂 阅读(132) 评论(0) 推荐(0) 编辑
摘要:enumerate([list1,list2]) ,循环的时候自动获取其list的下标和值 for index,value in enumerate([list]): print(index,value) 如图: 阅读全文
posted @ 2018-05-08 13:58 我已不爱凯蒂 阅读(149) 评论(0) 推荐(0) 编辑
摘要:import pymysqldef my_db(sql,port=3306,charset='utf8'): import pymysql host, user, passwd, db = '118.24.3.40','jxz','123456','jxz' coon = pymysql.connect(user=user,host=host,port=port,passwd=pas... 阅读全文
posted @ 2018-05-08 11:28 我已不爱凯蒂 阅读(452) 评论(0) 推荐(0) 编辑
摘要:#定义变量就是为了在后面还要用到它的值 #编程都是和内存打交道的 name='张三' print(name) #若变量里有单引号时,应使用双引号,例如:name="let's go" #若变量里有双引号时,应使用单引号,例如:name='张三长得“很帅”!' #若变量里既有单引号又有双引号时,用三引 阅读全文
posted @ 2018-05-02 18:14 我已不爱凯蒂 阅读(180) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示