- 博客(31)
- 收藏
- 关注
原创 Selenium中send_keys上传图片方法以及可能失败的原因
Python Selenium是一个用于自动化浏览器操作的工具,可以用于模拟用户在浏览器中的各种操作。这里可以看到定位到上传图片的元素,但是,由于Selenium提供send_keys()这个方法的机制,我们就不能定位这个元素了,我们要再这整个div标签里找到,input标签并定位。今天是主要说的是input标签,这种可以用selenium提供的send_keys()方法轻松解决;找到元素后我们需要确定上传图片的路径,这里可以是本地图片也可以是封装进项目的图片接下来是代码以及注解。
2024-08-06 10:44:33 451
原创 jenkins增加用户,并配置权限,保姆式教学
由于公司项目越来越多使用jenkins的频率也越来越频繁,由于不能让所有人都有修改所有项目的权限所以就有了下面的创建新用户各自负责各自的项目接下来就是创建一个新用户的操作创建一个用户输入用户名-密码-项目名-邮箱就好了这样就创建好一个用户了用户是创建好了,但是他目前拥有着和admin一样的权限这样就不太方便了就需要分配权限,
2024-04-30 10:20:32 2183
原创 TestNG接口自动化3重复执行失败用例的方法
由于存在查询过快导致请求失败等的操作,学习了一下可以重复执行失败的测试用例并且可以设置重复执行的次数。
2024-04-24 14:24:03 378
原创 testng接口自动化2@Test常见参数
6,如果参数有很多,需要进行多方面传参并且持续性的执行可以使用@DataProvider的方法,进行参数化可以看见两个参数都可以传入到条用例中相当于执行了两遍不同参数的同一条用例,也是很常见的一种编写用例中会用到的参数。xml的执行格式,class是你要执行的类名可以写多个,groups里只需要写组的名字就好,在xml执行就可以执行两个类里的指定组的所有用例了。以上是我比较常用的一些参数使用,大家可以根据自己需求找对应的参数使用方法,后续继续跟大家分享常用的使用技巧和方法。
2024-04-09 10:19:55 437
原创 testng接口自动化1准备操作
TestNG(Test Next Generation, 下一代测试技术)在JUnit和Nunit基础上新增了许多功能。TestNG支持单元自动化测试, 另外,它可以集成selenium, Appium和HttpClient等框架做各种类型的自动化测试。是一个测试框架, 旨在简化从单元测试到集成测试的广泛测试需求。它提供了一系列丰富的注解(标签), 来帮助我们很方便的编写和管理测试用例和测试方法。主要特点如下:1. 强大的注解功能。2. 数据驱动。3. 灵活的测试配置。
2024-03-11 17:06:54 373
翻译 什么样的项目适合自动化测试
什么样的项目适合自动化测试①需求稳定,不会频繁变更自动化测试最大的挑战就是需求的变化,而自动化脚本本身就需要修改、扩展、debug,去适应新的功能,如果投入产出比太低,那么自动化测试也失去了其价值和意义;折中的做法是选择相对稳定的模块和功能进行自动化测试,变动较大、需求变更较频繁的部分用手工测试;②多平台运行,组合遍历型、大量的重复任务测试数据、测试用例、自动化脚本的重用性和移植性较强...
2019-12-30 20:15:25 159
原创 分布式爬虫
Scrapy_redis:Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在:reqeust去重,爬虫持久化,和轻松实现分布式首先安装代码:pip3 install scrapy-redis3.要使用分布式 Scrapy_Redis Settings.py设置文件中需要做一下配置这里表示启用scrapy-redis里的去重组件,不实用scrapy默认的去重...
2019-09-22 19:29:25 163
原创 爬虫部署
*爬虫部署需要先下载插件pip3 install scrapydscrapyd:是运行scrapy爬虫的的服务程序,它支持以http命令方式发布,删除,启动,停止爬虫程序。而且,scrapyd可以同时管理多个爬虫还可以有多个版本pip3 install scrapyd-clientscrapyd-client:是发布爬虫需要使用的另一个专用共具,就是将代码打包为EGG文件,其次需要将...
2019-09-22 19:18:55 271
原创 协程
什么是协程协程又称微线程,是python中另一种实现多任务的方式,比线程占用更小的执行单元(资源),自带cpu寄存器上下文,可以实现协程之间的快速切换使用greenlet实现协程需要先下载插件pip3 install greenlet然后导入模块from greenlet import greenleet起名 = gevent.spawn(执行的函数,参数一,参数二)参数一和参数...
2019-09-11 19:31:09 115
原创 进程
进程的介绍1,进程是cpu分配资源的基本单元2,使用进程可以充分用CPU资源,是CPU分配资源的基本单元每一个进程都有自己的内存空间,同样是无需执行,进程之间资源不共享,多用进程处理计算密集型任务,进程可以实现并行的操作3,进程之间的执行同样是无序的4,进程多用来处理计算密集型任务5,在多核处理器中进程是能够实现并行的并行:同时发起同时执行并发:同时发起不同时执行创建进程myPr...
2019-09-11 17:35:43 76
原创 线程与线程池
线程的基本介绍1,线程是CPU执行的基本单元2,线程的执行是无序的3,同一进程下的线程资源是共享的,4,线程可以实现多任务,多用来处理I/O密集型任务5,GIL:全局解释器锁,因为python的CPython解释器的原因,存在一个GIL全局解释器锁,用来保证同一时刻只有一个线程执行,相当于单核执行,所以说线程不能充分历用CPU资源6,添加线程锁之后,保证同一时刻只能有一个线程在使用或修...
2019-09-10 18:54:11 87
原创 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 487
原创 XPath
什么是XPathXPath即为XML路径语言(XML Path Language),它是一种用来在XML文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行搜索,同样也适用于HTML。什么是XMLXML是一种标记语言,很类似HTMLXML的设计宗旨是传输数据,而非显示数据XML的标签需要我们自行定义常用路径表达式nodename选取此...
2019-09-09 19:31:16 87
原创 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 91
原创 正则
正则:单字符. 匹配除换行符之外任意字符,\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 67
原创 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 83
原创 pdb
pdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。命令 |简写命令 |作用 |break | b |设置断点|continue | c |继续执行程序 |list | l |查看当前行的代码段 |step | s |进...
2019-01-07 20:02:52 532
原创 __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 92
原创 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 9139
原创 文件夹的相关操作
创建文件夹import osos.mkdir("张三")获取当前目录import osos.getcwd()改变默认目录import osos.chdir('../')获取目录列表import osos.listdir('./')删除文件夹import osos.rmdir('张三')...
2019-01-07 18:56:33 108
原创 迭代器
1.可迭代对象以直接作用于 for 循环的数据类型有以下几种:一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;一类是 generator ,包括生成器和带 yield 的generator function。这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。2. 判断是否可以迭代可以使用 isinstance() ...
2019-01-06 20:10:19 78
原创 类属性、实例属性
实例属性就是对象属性,顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似。对于公有的类属性,在类外可以通过类对象和实例对象访问class 人类(object): 眼睛 = ‘黑色’ __基因 = ‘X’ def __init__(self): self.名字 = ‘张三’ self.__性取向 = ...
2019-01-06 20:06:19 315
原创 类方法
是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以’cls’作为第一个参数的名字,就最好用’cls’了),能够通过实例对象和类对象去访问。class People(object): country = 'china' #类方法,用class...
2019-01-06 19:51:51 4315
原创 重写、调用父类方法
所谓重写,就是子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法、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 349
原创 多继承
从图中能够看出,所谓多继承,即子类有多个父类,并且具有它们的特征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 189 1
原创 单继承
在程序中,继承叙述的食物之间的所属关系,列入猫和狗都属于动物,程序中边看可以描述为猫和狗继承自动物:同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承狗,如下图所示#定义一个父类,如下:class Cat(object): def __init__(self,name,color='白色'): self.name = name self.color = color def r...
2019-01-06 19:20:29 145
原创 del()方法
创建对象后,python解释器默认调用init()方法;当删除一个对象时,python解释器也会默认调用一个方法,这个方法为del()方法*del 程序结束后自动会调用import timeclass Animal(object): # 初始化方法: # 创建完对象后会自动被调用 def __init__(self, name): print('__init__方法被调用')...
2019-01-06 19:04:37 2001
原创 python基础
变量基础1:变量名 = 值2:变量的类型:(1)数字型整型(int)浮点型(float)布尔型(bool)(1) 真 True 非0数——非零即真(2) 假 false 0复数型(complex)主要用于科学计算,列如:平面场问题,波动问题等(2) 非数字类型字符串列表元祖字典欢迎使用Markdown编辑器你好! 这是你第一次使用 Ma...
2019-01-06 18:58:09 66
原创 定义类
定义类有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 131
原创 模块
用import引入某个模块假如导入math`import mathprint sqrt(2)#这样会出错print math.sprt(2)#需要加入模块名调用我们不仅可以引入函数,还可以引入一些全局变量、类等from 模块名 import 函数名1,函数名2.....如果想一次性引入模块的所有的东西,还可以通过from 模块名 import * # ‘*’...
2019-01-06 18:50:35 233 1
原创 异常处理
try :包含的部分是放入可能出现异常的代码except :部分是来处理发生的异常try:#放入可能引起异常的代码 print('test1') open('123.txt','r') print('test2')except IOerror:#对异常的处理代码 pass #pass表示实现了相应的实现但是什么也不做,如果把pass改成print那么就可以输入其他信息异常的传递...
2019-01-03 16:19:25 70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人