python
文章平均质量分 50
甜橙W
这个作者很懒,什么都没留下…
展开
-
python之多进程
多进程:multiprocessing模块multiprocessing模块提供了一个Process类来代表一个进程对象def run_child(name):print(“this is a child process %s (%s)”%(name,os.getpid()))if name==“main”:p=Process(target=run_child,args=(‘test’,))print(“Parent Process %s”%(os.getpid()))p.start()p原创 2021-04-05 23:06:58 · 293 阅读 · 1 评论 -
python2代码转换为python3代码
python2.x代码快速转换为python3.x代码转换方法:1、先进入python3.x安装程序路径Python38\Tools\scripts,我本地安装路径如下:C:\Users\18566\AppData\Local\Programs\Python\Python38\Tools\scripts路径下有py文件 2to3.py2、在路径框输入cmd,回车会进入命令行,此时路径直接进入该文件路径3、命令行输入python 2to3.py -w F:\CGI_Mstar。其中-w为指定目原创 2020-10-27 14:11:38 · 630 阅读 · 2 评论 -
pytest基本用法总结
参考官方文档:https://docs.pytest.org/en/stable/contents.html#toc1、安装命令行pip install pytestpycharm安装下载pytest包,python setup.py install2、start先创建一个简单的用例:def func(x):return x + 1def test_answer():assert func(3) == 5注意:用例的名字必须是test开头,如果写在类里面则需要类以Test开头命名:查原创 2020-08-18 19:30:02 · 4120 阅读 · 0 评论 -
JSON-python 使用
json是一种轻量级的数据交换格式。使用JSON先导入json库:import json点击json进入,查看源码里面的示例如下:Encoding basic Python object hierarchies::>>> import json>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])'["foo", {"bar": ["baz", null, 1.0, 2]}]'>>>原创 2020-08-17 17:28:33 · 249 阅读 · 0 评论 -
Python dir() 函数-记录
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。...原创 2020-08-11 10:42:39 · 151 阅读 · 0 评论 -
python内置装饰器
1、@propery将方法变为一个属性使用,访问时直接通过方法名来访问方法,不需要在方法名后添加"()">>> class info:... def __init__(self,name,address):... self.name=name... self.address=address... @property... def myName(self):... print(se原创 2020-08-10 17:24:49 · 178 阅读 · 0 评论 -
类里面装饰器的使用,args[0]=self
针对函数和类单独写装饰器可以理解了,请参考往期文档。之前写了一个类,然后想把装饰器实现的函数也写在类里面,在类方法加上装饰器,之前一直报错。现在解决了,就是类里面的参数第一个self,所以一定要注意self参数。实现例子如下:class action: def __init__(self,name,gender,address=None): self.name=name self.gender=gender self.address=addre原创 2020-08-08 20:39:44 · 352 阅读 · 0 评论 -
logging的理解和使用一
#参考官方文档----一、logging基本使用1、logging概述logging是软件运行过程中跟踪一些时间发生的一种手段,软件开发会在软件的一些特定时间发生后在代码中添加log,此时会调用logging。日志里面对这个事件信息进行描述,可以包含一些变量数据,具体信息由自己定义。这些事件也存在一定的严重程度,这些也是由开发者赋给事件的严重性,即会有一个时间的Level表示不同严重级别的事件。2、什么时候会用到logginglogging提供了一系列的functions供使用,例如debug(原创 2020-08-08 19:20:39 · 41461 阅读 · 3 评论 -
python装饰器理解(一)
1、不带参数的装饰器写一个函数或者类或者方法,记为name1.运行的业务函数作为name2@name1def name2():…return xx这样运行的时候并不是直接运行name2,而是把name2作为参数传入name1进行执行。比如现在有很多业务,需要在执行前后开始加打印:def warpper(func): def log(*args,**kwargs): print("现在开始运行了") print(func.__name__)原创 2020-08-04 19:42:59 · 185 阅读 · 0 评论 -
type动态创建类理解
查看python里面type函数,点击进去之后源码:def __init__(cls, what, bases=None, dict=None): # known special case of type.__init__ """ type(object_or_name, bases, dict) type(object) -> the object's type type(name, bases, dict) -> a new type # (copi原创 2020-08-04 18:49:41 · 325 阅读 · 0 评论 -
python函数中:和->的作用
参考文档:https://www.python.org/dev/peps/pep-0484/函数的形参中可以加:定义形参的类型,好处是python可以根据定义的类型自动引用方法,实际上不会对类型做检查,但是如果形参类型在函数内部不同可能会导致函数运行错误。->则表示函数返回的类型是什么类型,实际上也是不做检查的def function1(a:int,b:int)->s return a+b print(function1(1,2)) p原创 2020-08-04 17:26:31 · 1332 阅读 · 0 评论 -
appium测试安卓app记录
一、基本概述appium的核心是暴露的一系列REST API的server。server监听一个端口,接收由client发送来的command,翻译这些command转换为移动设备可以理解的形式发送给设备,移动设备执行完这些command会把执行结果返回给appium server,appium server再把执行结果返回给client。client即发送command的设备,即client是发送代码的客户端,代码可以是java/ruby/js,只要实现了webdriver标准协议就可。1.1 s原创 2020-07-31 16:30:12 · 1304 阅读 · 0 评论 -
yaml UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xba in position 15: illegal multibyte sequen
yaml UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xba in position 15: illegal multibyte sequenceyaml读取文件报上述错误。解决办法,二进制读取。with open("…/xx.yaml",‘rb’) as f:yaml.safe_load(f)原创 2020-07-29 16:32:26 · 917 阅读 · 0 评论 -
locals()返回当前范围内的变量,以字典的格式返回
遇到场景根据一些业务生成参数,但是实在不想一个一个的写,然后就搜索了一下,果然有这么个函数可以,就是locals(),话不多说,看示例,记录下:源码:def locals(*args, **kwargs): # real signature unknown """ Return a dictionary containing the current scope's local variables. NOTE: Whether or not updates to this原创 2020-07-21 10:49:13 · 322 阅读 · 0 评论 -
DeprecationWarning: use options instead of firefox_options,在firefox里面添加option警告
class MemberManage: def __init__(self): options=webdriver.FirefoxOptions() options.debugger_address="127.0.0.1:9922" self.driver=webdriver.Firefox(firefox_options=options) self.driver.implicitly_wait(5) self.driv原创 2020-07-20 11:03:26 · 1496 阅读 · 0 评论 -
sys.argv
sys.argv指的是外部参数,命令行运行.py文件时,argv[0]指的是文件本身,argv[n]指的是第n个参数举例说明:文件testSysArgv.pyfrom sys import agrvprint(agrv[0])print("*************************")paraLen=len(agrv)for i in range(paraLen): pri...原创 2020-04-26 16:15:34 · 363 阅读 · 0 评论 -
库初始化文件__init__.py其实工作作用类似类初始化__init__(self)
库初始化文件__init__.py其实工作作用类似类初始化__init__(self).类的初始化函数__init__.py就是每次实例化类的时候都会进行调用。文件夹里面如果包含了__init__.py文件就会识别为一个库(lib),当其他文件进行导入这个库的时候就会运行__init__.py举例说明:比如先创建了如图目录:testTmp下__init__.py内容如下:#codin...原创 2020-04-07 15:34:59 · 499 阅读 · 0 评论 -
__all__解读
在很多源码里面都看到__all__=[var1,var2,var3]类似的定义,这个会影响到导入模块的范围比如文件a.py__all__=['a1','b']a1=1def b(): print("b")c=3#文件b.pyfrom testTmp.a import *print(a1)print(b())print(c)运行结果:```Traceback (most ...原创 2020-03-26 17:28:24 · 326 阅读 · 1 评论 -
python中可变对象和不可变对象
关于python中的对象是否可变是否不可变,第一步先了解一下python变量在内存中的存储逻辑(python中变量的地址有点像C语言中的指针):python里面变量赋值之后会对值得引用有一个计数,当计数为0得时候就进行垃圾销毁。至于引用计数怎么为0,如下例子就是:a=5b=6a=6a重新赋值之后指向的是6,此时对象A之前的引用5已经引用为0,就会被销毁对象A和对象B现在的id值应...原创 2020-03-26 11:47:42 · 304 阅读 · 0 评论 -
类的继承和类的初始化
父类 子类class A: para1="para" def __init__(self,name,name1): self.name=name self.name1=name1 def function1(self): print("function1") def functon2(self): print("function2") def function3(s...原创 2020-03-25 18:43:50 · 384 阅读 · 0 评论 -
ddt数据驱动测试(类似parameterized)
__author__ = 'Administrator'#coding=utf-8import timeimport unittestfrom selenium.common.exceptions import NoSuchElementExceptionfrom Page.P2PPage import *import data.UserDatafrom parameterized ...原创 2020-03-25 17:30:45 · 898 阅读 · 0 评论 -
parameterized扩展测试用例,数据驱动测试
#coding=utf-8import timeimport unittestfrom selenium.common.exceptions import NoSuchElementExceptionfrom Page.P2PPage import *import data.UserDatafrom parameterized import parameterizedfrom Com...原创 2020-03-25 14:50:47 · 790 阅读 · 2 评论 -
下载的HTMLTestRunner.py,修改浏览器打开报告显示截图报错,文件里面javascript写错导致
1、用HTMLTestRunner.py运行并生成报告,结果点击显示截图:如图浏览器的地址其实已经告诉我们这个网址无法理解javacript:void(0);其实可以看出是javascript写错了,去htmltestrunner.py文件修改过来就可以了,其实点击浏览器上的返回按钮截图也出来了(目前还没理解为啥,看来还是有必要去读一下源码,虽然我这三脚猫功夫不咋滴—||)。如上图(没...原创 2020-03-23 16:06:29 · 321 阅读 · 0 评论 -
unittest使用assert之后截图一直没运行,assert断言结果是fail之后,该断言语句之后的语句是不会执行的
unittest使用assert之后截图一直没运行,assert断言结果是fail之后,该断言语句之后的语句是不会执行的。****使用了assert程序没报错误,导致我忽略了这个实际上是错误的。原来的代码:para_dst=[("April.first.Sunday.23","January.the second.Monday.0","0"),("December.the last one....原创 2020-03-20 11:40:19 · 855 阅读 · 0 评论 -
循环多次的测试,没有深入理解unittest的testcase运行机制导致的误解
testcase目录下20个文件,每个文件里面是每个模块的测试用例在mainrun函数里面加载测试用例suite=unittest.TestLoader().discover("testcase")ReportFileName=str(time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())))+".html"if "__...原创 2020-03-18 15:55:56 · 1228 阅读 · 0 评论 -
获取网页源码的某个值来操作网页,get_attribute("outerHTML")结合sqlit函数
有时候网页有一些缓冲图标,不知道缓冲图标啥时候结束,后来发现一般情况下网页缓冲的时候,其他页面都不可操作,其他网页不清楚,我测试的网页发现有一个id的disable属性可以判断网页是否缓冲完毕,但是这个id又不能定位,但是存在在源码里面。具体的网页信息如下:获取当前dispaly的值来判断test是否结束,结束的话值为none(控制网页是否可操作的一个id)TestEndTextJuge=s...原创 2020-03-18 15:18:02 · 1247 阅读 · 0 评论 -
python web selenium关于try except结合traceback使用(欢迎指正!)
traceback导入import traceback测试用例写法如下:class test_CameraT(unittest.TestCase):action=TimeSet()def setUp(self):# 测试固件的setUp()的代码,主要是测试的前提准备工作warnings.simplefilter(‘ignore’,ResourceWarning)# self...原创 2020-03-18 15:07:15 · 399 阅读 · 0 评论 -
python数据缓存导致数据不能及时更新(菜鸟,仅供参考,欢迎指正!)
python数据缓存导致数据不能及时更新欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:...原创 2020-03-18 14:49:46 · 942 阅读 · 1 评论 -
python--关于configParser读取配置文件,options会变成小写的解决办法,类的重写???
关于configParser读取配置文件,options会变成小写的解决办法: 解决方案: 第一种解决法案是改源码,直接将def optionxform() 函数中‘.lower()’去掉: def optionxform(self, optionstr): return optionstr 此种解决方案的不足之处是只能在本机生效,换台机器就会出问题。 第二种解决方案是...原创 2018-06-26 18:55:15 · 3615 阅读 · 0 评论 -
python学习必知---python2.x与python3.x选择
pyhon语言早在1989由Guido vanRossum开发,第一个公开发行版本始于1991年。因为早期的Python版本在基础方面设计存在着一些不足之处。因此,2008年的时候,又重新发布了Python3.0,Python3在设计的时候很好解决了这些遗留问题,然而Python3带来的最大的问题就是不完全向后兼容,当时向后兼容的版本是Python2.6。然而经过多年的发展,Python2版本已经转载 2017-08-27 18:34:17 · 1355 阅读 · 0 评论