
个人学习笔记
软件测试老痞
擅长团队管理,测试技术扩展,敏捷迭代测试。所有的技术博文都有“软件测试导航”星球答疑服务
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
接口自动化测试框架-python操作excel读取数据
excel的数据组成形式我们已经确定完成之后,下来就是对excel中数据的读取和获取。正好python给出了开源的组件,相关深入的API请查看官方文档xlrd - xlrd 2.0.1 documentation下来我们开始写读取excel的工具类table = self.book.sheet_by_index(0) # 测试数据都存储在第一个sheet页 # 第一行为标题,因此从下标为1也就是第二行获取 for norw in range(1, table.nrow..原创 2021-01-18 14:51:36 · 553 阅读 · 3 评论 -
接口自动化测试-使用python模拟一个delete请求
我们都知道一个点:Delete请求往往是删除一些服务器资源的时候很多时候才用到这样的接口一般也是需要知道接口的URL请求头header当然我们也都知道,对于delete提交的参数形式有application/x-www-form-urlencoded,form-data,json等等,后续我持续进行更新那么,我们先从一个简单的delete请求开始,如下图:...原创 2021-01-18 09:28:17 · 477 阅读 · 0 评论 -
接口自动化测试-使用python模拟一个put请求
我们都知道一个点:接口的PUT请求和POST请求类似唯一的区别是一个是PUT是对等加密的一般也是需要知道接口的URL请求头header请求参数再请求的参数中主要会在body体中当然我们也都知道,对于PUT提交的参数形式有application/x-www-form-urlencoded,form-data,json等等,后续我持续进行更新那么,我们先从一个简单的PUT请求开始,如下图:...原创 2021-01-18 09:26:52 · 467 阅读 · 0 评论 -
接口自动化测试-使用python模拟一个post请求
关联文章https://blog.youkuaiyun.com/pacermaker/article/details/112761750我们都知道一个点:接口的POST请求和get请求类似一般也是需要知道接口的URL请求头header请求参数再请求的参数中主要会在body体中当然我们也都知道,对于post提交的参数形式有application/x-www-form-urlencoded,form-data,json等等,后续我持续进行更新那么,我们先从一个简单的post.原创 2021-01-18 09:25:32 · 225 阅读 · 0 评论 -
网络知识
IP地址为什么是0~255因为我们看到的每一个“.”区分区间为8进制,及0-2的八次方IP地址分成两部分网络部分:标识吧子网主机部分:标识主机子网掩码:规定哪几部分是网络部分,哪部分主机部分,网路部分全部为1,主机部分全是0网络地址:IP地址二进制与子网掩码做and运算出的1,物理层:作用:物理链接功能:发送电信号(0,1指令)2.数据链...原创 2019-11-28 13:04:24 · 135 阅读 · 0 评论 -
Python使用协程的方式调用爬虫去爬取相应的网站
from gevent import monkey# monkey.patch_all()import geventfrom urllib.request import urlopendef f(url): print('GET:%s' % url) resp = urlopen(url) data = resp.read() # with ope...原创 2019-11-26 14:22:41 · 305 阅读 · 0 评论 -
Python进程之间的信息传递
方法一:使用Queuefrom multiprocessing import Process,Queuedef f(q,n): q.put([42,n,'hello'])if __name__ == '__main__': q=Queue() p_list = [] q.put(333) for i in range(3): p...原创 2019-11-25 18:32:15 · 629 阅读 · 0 评论 -
python多进程并发
Python由于GIL的关系,导致线程的并发不是真正的并发,这个时候我们可以考虑多进程并发如下:通过下面的代码简单实现子进程的创建方法一:from multiprocessing import Processimport timedef f(name): time.sleep(1) print('hello',name,time.ctime())if __n...原创 2019-11-25 17:49:37 · 219 阅读 · 0 评论 -
Python中对于开发项目的个人感想杂谈
在遇到一个项目之前呢,需要做以下步骤1,分析项目需要完成那些功能需求2,抽象出模型,写到models,基于model中的对象,分析有哪些属性,写到__init__方法中,需要打印某些对象的信息的时候,可以写在__str__,某些不依赖于具体实例的方法,如查看新建了多少个实例,可以写为如下:class BaseModel: def save(self): """...原创 2019-11-22 12:38:16 · 685 阅读 · 0 评论 -
python的enumerate函数使用
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']>>> list(enumer...原创 2019-11-21 14:56:57 · 189 阅读 · 0 评论 -
Python队列和线程的结合使用
队列:queue具有先进先出的特性这样我们可以把线程放在queue中,从而实现生产者和消费者模式,详见:https://blog.youkuaiyun.com/pacermaker/article/details/103086173import queueimport threadingfrom random import randintfrom time import sleep# d=...原创 2019-11-15 17:37:12 · 264 阅读 · 0 评论 -
Python线程的条件判断
import threading,timeclass Boss(threading.Thread): def run(self): print("BOSS:今晚大家都要加班到22:00.") event.isSet() or event.set()#拿到event状态初始值为false,设置成true,唤醒Worker time.slee...原创 2019-11-15 16:14:11 · 334 阅读 · 0 评论 -
Python线程之生产者和消费者
场景:有做包子和吃包子两个人吃包子的时候得等到做包子的人做好才可以这也是我们所常说的生产者和消费者模型import threading,timefrom random import randintclass Producer(threading.Thread): def run(self): global L while True: ...原创 2019-11-15 15:27:10 · 185 阅读 · 0 评论 -
Python线程知识整理
线程创建的方法方法一:import timeimport threadingdef foo(n): print('foo%s'%n) time.sleep(1)def bar(n): print('bar%s'%n) time.sleep(2)t1 = threading.Thread(target=foo,args=(1,))t2 = th...原创 2019-11-14 10:05:04 · 131 阅读 · 0 评论 -
学习程序编程语言的思路
1,一般我们写的代码都存放在本地磁盘;2,点击运行的时候是通过编译器(java的用java编译器,Python的用Python编译器),加载到内存中;3,内存中的代码根据变量查找对应的变量值,或者函数名找函数;4,之后我们在理解下内存的工作形式或者原理;这是个人在学习编程语言中的思路,仅供参考...原创 2019-10-19 18:32:45 · 189 阅读 · 0 评论 -
Python的configparser生成配置文件,以及相关操作
Python中使用configparser生成配置文件,如下import configparserconfig = configparser.ConfigParser()config["DEFAULT"] = {'ServerAliveInterval':30, 'Compression':'no', ...原创 2019-09-24 16:58:54 · 740 阅读 · 0 评论 -
Python logging 日志总结
如下面的程序logging.basicConfig(level=logging.DEBUG, format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt = '%a,%d %b %Y %H:%M:%...原创 2019-09-23 17:25:42 · 231 阅读 · 0 评论 -
Python的random模块总结
import randomprint(random.random())print(random.randint(1,15))#包括15print(random.choice('hello python')) #随机选择某个字符print(random.choice(['123',4,[1,2]]))print(random.sample(['123',4,[1,2]],2))#随机选...原创 2019-09-16 17:51:25 · 146 阅读 · 0 评论 -
Python模块time的总结
import timeprint(help(time))print(time.time())#1568622622.3269708获取当前时间print(time.clock())#计算CPU执行时间print(time.gmtime())#time.struct_time(tm_year=2019, tm_mon=9, tm_mday=16, tm_hour=7, tm_min=29...原创 2019-09-16 16:39:07 · 140 阅读 · 0 评论 -
小白接口测试之复杂json接口响应处理思路
报文响应格式如下:报文响应的分析:1,报文含有多级节点2,在二级节点下含有多个rows,rows中是列表嵌套列表,并且第二级列表下含有key:value这样的键值对形式的相应格式处理方法;public void getCourseMutiContion(){ String jsonStr="{\"style\":\"\",\"clientInfo\":{\"clientType\":\"w...原创 2018-07-05 11:18:33 · 1067 阅读 · 0 评论 -
小白接口自动化测试-Rest-assured中对header校验处理办法
使用postman验证接口中对header为如下格式:格式化之后的键值对显示(使用postman)那么,如何使用Rest-assured进行处理提供的Api有两个方法 header和headers使用header(),把每个键值对塞进去如下图:使用headers()先将存储到map容器中如下图将map塞到headers运行之后的界面如下:...原创 2018-08-23 12:10:16 · 1246 阅读 · 0 评论 -
JMeter创建服务器监听Apache服务器性能监控测试计划
整体如下:原创 2018-12-14 15:09:38 · 128 阅读 · 0 评论 -
jmeter也有loadrunner一样的图形监控扩展
扩展插件:将JMeterPlugins.jar包复制到jmeter的lib目录下的ext,重新启动我们需要将serverAgent目录及下面的文件复制到我们的测试的服务器上(起到监听服务器的作用)点击startAgent.bat在监听其中添加如下的运行脚本,如下...原创 2018-12-21 17:10:41 · 214 阅读 · 0 评论 -
Jmeter不同组件执行顺序
1-配置节点2-前置处理器3-定时器4-取样器5-后置处理器(只在有结可用的情况下执行)6-断言(只在有结可用的情况下执行)7-监听器(只在有结可用的情况下执行) 同样的组件按照作用域从上到下的顺序执行...原创 2019-01-02 10:26:28 · 200 阅读 · 0 评论 -
jmeter--细节关注点,Retrieve All Embedded Resources(解析所有的嵌入资源)
1,在使用jmeter做性能测试的过程中,如果要尽量和系统保持一致的请求,可以勾选如下按钮:此按钮的作用是从响应的信息中获取到下一次发送的请求,因为在html中有部分frame中还携带着其他的请求信息,这样就需要我们开启上面的按钮,在相应的response中,拿到响应的请求数据,如下都是包含在相应信息中的请求...原创 2019-01-02 15:40:10 · 1144 阅读 · 0 评论 -
Python函数主要的作用
数学中的函数:function计算机函数 : subroutine 子程序 procedures 过程二者有一定的区别def logger(log_text): f = open("log.txt",'a') f.write("2019-09-06 09:00" %s log_text) f.close() print(log_text)...原创 2019-09-06 10:48:05 · 8077 阅读 · 0 评论 -
Python的集合操作总结
a=set([1,2,3,4,5,6])b=set([4,5,6,7])# intersection 交集#a和b的交集print(a.intersection(b))#{4, 5, 6}print(a & b)#{4, 5, 6}# union 并集print(a.union(b))#{1, 2, 3, 4, 5, 6, 7}print(a | b)#{1, 2, ...原创 2019-09-05 18:02:58 · 202 阅读 · 0 评论 -
Python函数传参位置关系总结
一般传参的函数def print_Info(name,age): print('Name: %s' % name) print('Age: %s'%age)print_Info("ljj",15)带有默认值的传参函数,有默认值的放在后面def print_Info(name,age=15): print('Name: %s' % name) ...原创 2019-09-06 16:58:28 · 1085 阅读 · 0 评论 -
Python中set集合的增加,update和add的区别
s1=set('liujingjing')print(s1)#{'g', 'i', 'j', 'l', 'n', 'u'}s1.add('oop')print(s1)#{'j', 'i', 'oop', 'n', 'l', 'g', 'u'}s1.update('oop')print(s1)#{'oop', 'i', 'l', 'j', 'o', 'n', 'g', 'u', 'p'}...原创 2019-09-09 16:29:33 · 1768 阅读 · 0 评论 -
Python高阶函数解析
def f(n): return n*ndef foo(a,b,func): return func(a)+func(b)print(foo(1,2,f))func加()代表调用func不加()代表变量f代表的一个变量名指向函数对象1)函数名可以进行赋值2)函数名可以作为函数参数3)函数名也可以作为函数的返回值def foo3(): ...原创 2019-09-09 18:38:02 · 222 阅读 · 0 评论 -
Python递归函数
def fact(n): if n>1: return n*fact(n-1) else: return nprint(fact(5))递归函数有两个特点:1,自己调用自己2,有一个结束条件注意:1,但凡是递归可以写的程序,循环都可以解决。2,递归效率在很多时候会很低,不推荐使用。递归使用场景:斐波那契数列...原创 2019-09-10 13:38:17 · 219 阅读 · 0 评论 -
Python函数闭包
定义:如果在一个内部函数里,对外部作用域(单不是在全局作用域)的变量进行引用。def outer(): x=10 def inner():#条件一:内部函数 print(x)#条件二:对外部环境变量的一个引用 return inner #结论:内部函数就是一个闭包#outer()()#f=outer()#f()#inner()#局部变量,...原创 2019-09-11 11:41:26 · 149 阅读 · 0 评论 -
Python函数装饰器
import time#装饰器函数def show_time(f): def inner(): start = time.time() f() end = time.time() print('spend %s'%(end-start)) return inner#通过@show_time调用@sho...原创 2019-09-11 14:26:38 · 155 阅读 · 0 评论 -
Python迭代器杂谈
生成器都是迭代器,迭代器不一定是生成器可迭代对象:list,tuple,dict,string,Iterable什么是迭代器?满足两个条件:1,有iter方法;2,有next方法I=[1,2,3,4]d=iter(I)print(d)print(next(d))print(next(d))for循 环内部三件事1,调用可迭代对象的iter方法,返回一个迭代器对...原创 2019-09-16 14:50:46 · 117 阅读 · 0 评论 -
接口自动化小白之如何处理json请求参数
第一步:通过浏览器获取到接口url的请求参数,如下图的RequestPayload将此处的json请求粘贴出来;第二步,可以在postman这种类似的接口测试工具中粘贴相应的请求,验证请求的有效性。第三步,我们可以去通过rest-sure这样的工具类,编写如下代码实现接口自动化测试运行如下图:因为本人也是初学,欢迎大家共同讨论,后续我会持续更新...原创 2018-06-28 16:18:35 · 1314 阅读 · 0 评论