自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jenkins增加用户,并配置权限,保姆式教学

由于公司项目越来越多使用jenkins的频率也越来越频繁,由于不能让所有人都有修改所有项目的权限所以就有了下面的创建新用户各自负责各自的项目接下来就是创建一个新用户的操作创建一个用户输入用户名-密码-项目名-邮箱就好了这样就创建好一个用户了用户是创建好了,但是他目前拥有着和admin一样的权限这样就不太方便了就需要分配权限,

2024-04-30 10:20:32 923

原创 TestNG接口自动化3重复执行失败用例的方法

由于存在查询过快导致请求失败等的操作,学习了一下可以重复执行失败的测试用例并且可以设置重复执行的次数。

2024-04-24 14:24:03 266

原创 testng接口自动化2@Test常见参数

6,如果参数有很多,需要进行多方面传参并且持续性的执行可以使用@DataProvider的方法,进行参数化可以看见两个参数都可以传入到条用例中相当于执行了两遍不同参数的同一条用例,也是很常见的一种编写用例中会用到的参数。xml的执行格式,class是你要执行的类名可以写多个,groups里只需要写组的名字就好,在xml执行就可以执行两个类里的指定组的所有用例了。以上是我比较常用的一些参数使用,大家可以根据自己需求找对应的参数使用方法,后续继续跟大家分享常用的使用技巧和方法。

2024-04-09 10:19:55 389

原创 testng接口自动化1准备操作

TestNG(Test Next Generation, 下一代测试技术)在JUnit和Nunit基础上新增了许多功能。TestNG支持单元自动化测试, 另外,它可以集成selenium, Appium和HttpClient等框架做各种类型的自动化测试。是一个测试框架, 旨在简化从单元测试到集成测试的广泛测试需求。它提供了一系列丰富的注解(标签), 来帮助我们很方便的编写和管理测试用例和测试方法。主要特点如下:1. 强大的注解功能。2. 数据驱动。3. 灵活的测试配置。

2024-03-11 17:06:54 344

翻译 什么样的项目适合自动化测试

什么样的项目适合自动化测试①需求稳定,不会频繁变更自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手工测试;②多平台运行,组合遍历型、大量的重复任务测试数据、测试用例、自动化脚本的重用性和移植性较强...

2019-12-30 20:15:25 112

原创 分布式爬虫

Scrapy_redis:Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在:reqeust去重,爬虫持久化,和轻松实现分布式首先安装代码:pip3 install scrapy-redis3.要使用分布式 Scrapy_Redis Settings.py设置文件中需要做一下配置这里表示启用scrapy-redis里的去重组件,不实用scrapy默认的去重...

2019-09-22 19:29:25 137

原创 爬虫部署

*爬虫部署需要先下载插件pip3 install scrapydscrapyd:是运行scrapy爬虫的的服务程序,它支持以http命令方式发布,删除,启动,停止爬虫程序。而且,scrapyd可以同时管理多个爬虫还可以有多个版本pip3 install scrapyd-clientscrapyd-client:是发布爬虫需要使用的另一个专用共具,就是将代码打包为EGG文件,其次需要将...

2019-09-22 19:18:55 245

原创 协程

什么是协程协程又称微线程,是python中另一种实现多任务的方式,比线程占用更小的执行单元(资源),自带cpu寄存器上下文,可以实现协程之间的快速切换使用greenlet实现协程需要先下载插件pip3 install greenlet然后导入模块from greenlet import greenleet起名 = gevent.spawn(执行的函数,参数一,参数二)参数一和参数...

2019-09-11 19:31:09 91

原创 进程

进程的介绍1,进程是cpu分配资源的基本单元2,使用进程可以充分用CPU资源,是CPU分配资源的基本单元每一个进程都有自己的内存空间,同样是无需执行,进程之间资源不共享,多用进程处理计算密集型任务,进程可以实现并行的操作3,进程之间的执行同样是无序的4,进程多用来处理计算密集型任务5,在多核处理器中进程是能够实现并行的并行:同时发起同时执行并发:同时发起不同时执行创建进程myPr...

2019-09-11 17:35:43 56

原创 线程与线程池

线程的基本介绍1,线程是CPU执行的基本单元2,线程的执行是无序的3,同一进程下的线程资源是共享的,4,线程可以实现多任务,多用来处理I/O密集型任务5,GIL:全局解释器锁,因为python的CPython解释器的原因,存在一个GIL全局解释器锁,用来保证同一时刻只有一个线程执行,相当于单核执行,所以说线程不能充分历用CPU资源6,添加线程锁之后,保证同一时刻只能有一个线程在使用或修...

2019-09-10 18:54:11 62

原创 BeautifulSoup4与pyquery

BeautifulSoup4什么是beautiful soup :是python的一个HTML或XML的解析库,可以用它来方便的从网页中提取数据bs4在解析时所依赖的解析器:1,Python标准库 BeautifulSoup(markup,‘html.parser’) Python内置标准库,执行速度适中,容错能力强2,lxml HTML解析器 BeautifulSoup(mar...

2019-09-10 18:36:34 439

原创 XPath

什么是XPathXPath即为XML路径语言(XML Path Language),它是一种用来在XML文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行搜索,同样也适用于HTML。什么是XMLXML是一种标记语言,很类似HTMLXML的设计宗旨是传输数据,而非显示数据XML的标签需要我们自行定义常用路径表达式nodename选取此...

2019-09-09 19:31:16 65

原创 requests

requests_get获取数据代码获取的数据print(response.text)获取页面源码print(response.status_code)获取状态码print(response.headers)获取响应头print(response.request.headers)获取请求头print(response.content)获取二进...

2019-09-09 19:22:46 66

原创 正则

正则:单字符. 匹配除换行符之外任意字符,\d 匹配数字0-9 == [0-9] => ^\D\D 匹配非数字\s 匹配空白字符(空格,换行,\n \r \t)\S 匹配非空白字符\w 匹配单词字符[a-zA-Z0-9_]\W 匹配非单词字符^ 以什么为开头$ 以什么为结尾[0-9a-z] 表示匹配数字0-9和字母a-z[^a-z] 不匹配a-z之间的字符多字符...

2019-09-09 08:38:49 46

原创 urllib

urllib:get请求#创建一个request对象#url :目标url地址## data=None,:默认为None,表示是一个get请求,反之为post# headers = {}:请求头headers = {‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Ge...

2019-09-08 20:20:36 57

原创 pdb

pdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。命令 |简写命令 |作用 |break | b |设置断点|continue | c |继续执行程序 |list | l |查看当前行的代码段 |step | s |进...

2019-01-07 20:02:52 495

原创 __new__和__init__

new()和init()的作用class A(object): def __init__(self): print('这是init方法') def __new__(cls): print('这是new方法') return object.__new__(cls)A() * __new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提...

2019-01-07 19:33:53 65

原创 init()方法

__init__的使用方法def 类名: def __init__(): passinit()方法的调用class Car():#当创建Car对象后,在没有调用init()方法的前提下,msld就有两个默认属性,原因是init()方法在创建对象后,就立刻被默认调用了。。。 def __init__(self): self.wheelNum = 4 self.color =...

2019-01-07 19:05:04 9103

原创 文件夹的相关操作

创建文件夹import osos.mkdir("张三")获取当前目录import osos.getcwd()改变默认目录import osos.chdir('../')获取目录列表import osos.listdir('./')删除文件夹import osos.rmdir('张三')...

2019-01-07 18:56:33 85

原创 迭代器

1.可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的generator function。这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。2. 判断是否可以迭代可以使用 isinstance() ...

2019-01-06 20:10:19 62

原创 类属性、实例属性

实例属性就是对象属性,顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似。对于公有的类属性,在类外可以通过类对象和实例对象访问class 人类(object): 眼睛 = ‘黑色’ __基因 = ‘X’ def __init__(self): self.名字 = ‘张三’ self.__性取向 = ...

2019-01-06 20:06:19 295

原创 类方法

是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以’cls’作为第一个参数的名字,就最好用’cls’了),能够通过实例对象和类对象去访问。class People(object): country = 'china' #类方法,用class...

2019-01-06 19:51:51 4289

原创 重写、调用父类方法

所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法、class Cat(object): def sayHello(self): print("halou-----1")class Bosi(Cat): def sayHello(self): print("halou-----2") bosi = Bosi()bosi.sayHe...

2019-01-06 19:49:13 305

原创 多继承

从图中能够看出,所谓多继承,即子类有多个父类,并且具有它们的特征Python中多继承的格式如下classA: def printA(self): print(‘---A----’)#定义一个父类classB: def printB(self): print(‘---B---’)#定义一个子类,继承自A,BclassC(A,B): def printC(self): ...

2019-01-06 19:38:13 154 1

原创 单继承

在程序中,继承叙述的食物之间的所属关系,列入猫和狗都属于动物,程序中边看可以描述为猫和狗继承自动物:同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承狗,如下图所示#定义一个父类,如下:class Cat(object): def __init__(self,name,color='白色'): self.name = name self.color = color def r...

2019-01-06 19:20:29 126

原创 del()方法

创建对象后,python解释器默认调用init()方法;当删除一个对象时,python解释器也会默认调用一个方法,这个方法为del()方法*del 程序结束后自动会调用import timeclass Animal(object): # 初始化方法: # 创建完对象后会自动被调用 def __init__(self, name): print('__init__方法被调用')...

2019-01-06 19:04:37 1970

原创 python基础

变量基础1:变量名 = 值2:变量的类型:(1)数字型整型(int)浮点型(float)布尔型(bool)(1) 真 True 非0数——非零即真(2) 假 false 0复数型(complex)主要用于科学计算,列如:平面场问题,波动问题等(2) 非数字类型字符串列表元祖字典欢迎使用Markdown编辑器你好! 这是你第一次使用 Ma...

2019-01-06 18:58:09 57

原创 定义类

定义类有2种:新式类和经典类下面的Car为经典类如果Car(object)则为新式类类名的命名规则按照‘大驼峰’定义一个类,格式如下:class 类名: 方法列表demo:定义一个Car# 定义类class Car:# 方法 def getCarInfo(self): print('车轮子个数:%d, 颜色%s'%(self.wheelNum, self.color))...

2019-01-06 18:56:38 118

原创 模块

用import引入某个模块假如导入math`import mathprint sqrt(2)#这样会出错print math.sprt(2)#需要加入模块名调用我们不仅可以引入函数,还可以引入一些全局变量、类等from 模块名 import 函数名1,函数名2.....如果想一次性引入模块的所有的东西,还可以通过from 模块名 import * # ‘*’...

2019-01-06 18:50:35 208 1

原创 异常处理

try :包含的部分是放入可能出现异常的代码except :部分是来处理发生的异常try:#放入可能引起异常的代码 print('test1') open('123.txt','r') print('test2')except IOerror:#对异常的处理代码 pass #pass表示实现了相应的实现但是什么也不做,如果把pass改成print那么就可以输入其他信息异常的传递...

2019-01-03 16:19:25 56

空空如也

空空如也

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

TA关注的人

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