![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python学习
Jo...jo
这个作者很懒,什么都没留下…
展开
-
pytest(五)参数化
pytest参数化的实现,使用装饰器来实现@pytest.mark.parameterize(argnames,argvalues)argnames表示参数名称,是一串字符,多个桉树之间由都好隔开"username,password"argvalues表示参数化的数据,用元组来表示,[("13825110000‘,”123456“),(13900000000”,“111111”)]argname的参数个数要遇argvalue里面的测试数据个数要相同,否则会报错...原创 2021-08-24 11:00:41 · 226 阅读 · 0 评论 -
pytest(四)插件之报告、排序、重试、跳过
一、测试报告安装pytest测试报告插件1.在线安装 pip install pytest-html2.离线安装 下载对应的离线安装包,解压后进入对应目录,执行python setup.py install3.pycharm安装flie-setting-project-project interpreter-add:pytest-html install使用在pytest配置文件中配置报告文件地址...原创 2021-08-13 11:08:29 · 501 阅读 · 0 评论 -
pytest(三)配置文件
一、配置文件1. pytest配置文件主要用于定位测试文件及测试类和方法,更便捷的执行测试;配置文件只允许使用以下三个文件名称:pytest.initox.inisetup.cfg2. 配置文件内容[pytest]------------------------------表示该文件为pytest的配置文件addopts = -s -v---------------------执行用例的参数testpaths = ./scripts--------------执行用例..原创 2021-08-11 11:58:54 · 343 阅读 · 0 评论 -
pytest(二)fixture实现
pytest方法级别的fixture是针对每个测试方法在执行方法前执行fixture初始化的操作,在执行完测试方法后执行fixture销毁的操作初始化的操作方法: def_setup():销毁操作的方法: teardown(self):在每执行一个用例前和执行后的操作放在fixture中可以提高工作效率import timedef add(a,b): return a + b# 定义一个pytest类class Test_add: # 添加类...原创 2021-08-11 10:17:32 · 294 阅读 · 0 评论 -
pytest(一)框架的使用
一、pytest特点 1.入门简单,文档丰富 2.支持部分单元测试,和复杂的功能测试 3.支持参数化 4.执行测试用例过程中支持跳过操作 5.pytest支持重复执行失败的case,unittest不支持 6.支持运行由nose、unittest编写的测试用例 7.支持很多第三方插件 8.方便与持续集成工具集成,方便测试报告查看二、pytest的安装,安装前关掉代理软件 1.在线安装 pip install pytest...原创 2021-08-10 17:36:30 · 252 阅读 · 0 评论 -
selenium(十)获取随机手机号码
注册页面重复执行1.定义随机手机号码函数2.备份数据库,每次执行完代码后恢复数据库3.通过修改数据库数据来清除数据import randomimport timefrom selenium import webdriverdriver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(10)# 访问网站并打开多个窗口driver.get("https://passport.baidu.co.原创 2021-07-31 11:27:50 · 335 阅读 · 0 评论 -
python包、模块
1.模块:一般模块命名规则同变量规则,使用小写字母+下划线命名"""导入模块import 模块名使用导入模块中的函数模块名.函数名"""import mytestprint(mytest.my_sum(2,4))"""导入模块时区别名导入模块import 模块名 as 别名使用导入模块中的函数别名.函数名"""import mytest as mtprint(mt.my_sum(2,4))"""导入指定内容导入模块from 模块名 import 函数名使用导入原创 2021-07-14 16:15:23 · 199 阅读 · 0 评论 -
python捕获异常
"""try: 可能出现异常的语句except 异常类型1: 出现异常后会自动执行的代码except 异常类型2: 出现异常后会自动执行的代码except: 出现未知异常后会自动执行的代码"""# 计算器案例练习try: a = int(input("请输入数字1:")) b = int(input("请输入数字2:")) op1 = input("请输入运算符号:") if op1 =="+": print(a.原创 2021-07-09 14:43:24 · 109 阅读 · 0 评论 -
python-unittest测试报告
"""两种方法可以生成测试报告1.TextTestRunner(unittest自带)2.HTMLTestRunner(第三方模板)"""# 创建一个名为mytest01.py的测试用例文件内容如下from parameterized import parameterizedimport unittest# 定义方法def my_sum(a,b): return a + b# 定义类,并继承父类unittest.TestCaseclass my_test1(unittes.原创 2021-07-08 14:58:35 · 792 阅读 · 1 评论 -
unittest参数化parameterized
# pip install parameterized安装依赖包# 若报错“Value for scheme.headers does not match",重装pip# 若报错“check_hostname requires server_hostname”,关掉本地所有代理和fiddler等代理软件重新执行即可"""使用步骤1.导入包 from parameterized import parameterized2.在方法上面使用 @parameterized.expand修饰方法,参数是.原创 2021-07-07 10:55:14 · 1332 阅读 · 0 评论 -
unittest断言
# 断言:判断测试用例执行结果是否符合预期"""assertEqual(参数1,参数2)如果参数1与参数2的值相等,则断言成功测试用例通过,若不相等则断言失败,测试不通过一般情况下参数1为实际结果,参数2为预期结果"""import unittest# 定义方法def my_sum(a,b): return a + b# 定义类,并继承父类unittest.TestCaseclass my_test(unittest.TestCase): # 编写第一个测试用例,测试用.原创 2021-07-05 15:05:47 · 184 阅读 · 0 评论 -
unittest测试框架基础用法
"""UnitTest是python自带的单元测试框架TestCase测试用例TestSuite测试套件,可以把多个TestCase集成到一个TestSuite中TestRunner执行测试用例TestLoader自动从代码中加载多个测试用例TestCaseFixure是UnitTest的特性"""# ************************************************************************# testCase# 案例:定义一个.原创 2021-07-03 10:12:09 · 376 阅读 · 1 评论 -
python文件操作
# 打开文件并只读文件file = open(r"D:\file\test.txt","r") # 第一个r代表方式转义,第二个r代表只读操作,只读文件必须存在# 读取文件txt = file.read()print(txt)# 关闭文件,若不关闭文件则会消耗内存file.close()# * ***************************************************************# 打开文件并写入内容# 若文件不存在则新建文件,若文件存在则覆盖文.原创 2021-06-29 18:21:24 · 142 阅读 · 0 评论 -
python类的多态
#多态,不同的对象调用相同的父类方法,产生不同的结果class animal: #定义父类 def food(self): pass def eat(self): self.food()class cat(animal): #定义子类 def food(self): print('吃火腿')class cow(animal): #定义子类 def food(self): print('吃青草')c = .原创 2021-06-25 15:24:09 · 96 阅读 · 0 评论 -
python类方法和类属性
# 类属性,定义在类里面,方法的外面,不需要实例化类就可以直接使用# 调用的时候使用 类.属性名class dog: name = '哈士奇:汪!' #类属性定义,不需要self关键字,类似于定义变量 def __init__(self): passprint(dog.name) #调用类属性,不需要实例化可以直接调用dog.name = '秋田:汪!' #类属性赋值print(dog.name)# *****************************.原创 2021-06-25 15:19:43 · 244 阅读 · 0 评论 -
python类的继承
# 类b继承类a后,类b会拥有类a的所有属性和方法# 一个父类可以有多个不同的子类class a: #定义父类a def __init__(self,a1 = 23): #定义父类属性 self.a1 = a1 def a2(self): #定义父类方法 print(self.a1)class b(a): #定义子类b继承类a,子类(父类) def b1(self): print(self.a1) #调用类a的属性 de.原创 2021-06-23 15:42:37 · 295 阅读 · 0 评论 -
python类的封装
# 封装-把属性和方法封装到一个抽象类中# '__'私有属性或方法,只能用在类的内部使用,无法在类的外部访问class person: def __init__(self): self.name = 'marry' #定义属性name self.__weight = 150 #定义私有属性weight def eat(self): #定义方法 print('eating') def sleep(self): pri.原创 2021-06-22 16:34:24 · 356 阅读 · 0 评论 -
python面向对象二
# __del__方法,当对象在内存中销毁的时候自动调用,且不允许有别的参数,只能有self# 若无该方法,对象也会销毁,不过同时没有代码被执行# 定义__del__方法class 类: def __del__(self): pass# **********************************************class cat: def __init__(self,name = 'tom'): self.name = nam.原创 2021-06-22 14:39:04 · 64 阅读 · 0 评论 -
python面向对象一
# 类是一个模板,不可直接使用,如建筑设计图纸# 方法是类的行为,属性是类的特性# 对象是根据类实例化出来的# 一个类可能有多个对象,每个对象的属性的值可能不同,如人的属性有身高、体重、肤色等,方法有说话、跑步、吃饭# 类:名称、属性(变量)、方法(函数)# 定义类class 类名: def 方法名(self,参数1,参数2): passclass cat: def eat(self): print('小猫咪吃饭') def drin.原创 2021-06-19 10:20:34 · 153 阅读 · 1 评论 -
python函数
# 函数定义def my_add(): a = 10 b = 20 print(a+b)# 函数调用my_add()# *****************************************************# 带参函数def my_add(a,b): print(a+b)# 调用时传实例参数my_add(10,20)my_add(500,7) #位置参数my_add(a=20,b=40)#关键字参数my_add(b=30,a=90).原创 2021-06-15 10:47:35 · 150 阅读 · 0 评论 -
python变量及字符类型
# input_content = input('请输入您的姓名:')# 格式输出# print('欢迎光临: %s' % input_content)# ********************************************************# 数据类型转换left_num = input('请输入第一个数字')right_num = input('请输入第二个数字')# 打印字符类型print(type(left_num),type(right_num)).原创 2021-06-15 10:55:48 · 138 阅读 · 0 评论 -
python容器
# 遍历容器中的字符my_str = 'hello'i = 0while i < 5:#用下标的方式取字符,计数方式从左到右从0开始,从右到左从-1开始 print(my_str[i], end='') i = i + 1print() #换行# 简洁写法,for循环for v in my_str: print(v,end='')# *************************************************# 容器的专属方法(.原创 2021-06-15 10:50:37 · 59 阅读 · 0 评论 -
python列表
# 列表 list# 创建列表# my_list = [10,20,30]# my_list = ['aaa','bbb','ccc']# # 列表嵌套# my_list = [[1,2,3],1,2,3],1,2,3]]# 不同类型数据列表my_list = ['aaa',1.35,'ppp',[2,8,2]]# 列表遍历,支持索引和下标index = 0len = len(my_list)while index<len: print(my_list[index]).原创 2021-06-15 10:48:58 · 80 阅读 · 0 评论 -
python中if、while分支语句
a = 10b = 20if a > b: ret = a + belse: ret = a - bprint('ret = %d' % ret)input_username = input('请输入用户名:')input_password = input('请输入密码:')correct_name = 'admin'correct_password = '123456'# 判断用户名和密码是否正确if input_username == correct_na.原创 2021-06-15 10:52:16 · 249 阅读 · 2 评论 -
python基础案例练习二
# 一个学校有3个办公室,现在有8位老师,请给老师们随机分配工位# 定义学校和办公室school = [[],[],[]]# 定义老师列表teacher_list = []index = 1while index <= 8: # 创建老师的名字 teacher_name = '老师' + str(index) # 将老师名称放入老师列表中 teacher_list.append(teacher_name) index = index + 1..原创 2021-06-15 17:21:46 · 199 阅读 · 0 评论 -
python基础案例练习一
"""员工管理系统联系1.显示系统菜单2.获得用户输入的菜单3.根据用户的输入判断执行操作"""# 存储员工信息employee = {}def show_menu(): print('*'*20 + '员工管理系统菜单' + '*'*20) print('1.添加员工信息') print('2.删除员工信息') print('3.修改员工信息') print('4.查看员工信息') print('5.退出')# 添加员工信息def.原创 2021-06-15 17:17:42 · 370 阅读 · 0 评论 -
python元组与字典
# 元组是不能修改的序列容器# 元组比列表更节省空间,因为元组不可修改my_tuple = () #定义元组my_tuple = (10,20,30)print(my_tuple[1]) #元组下标索引print(my_tuple[1:]) #元组切片# 只有一个元素的元组需要在末尾添加逗号my_tuple = (10,)# 元组嵌套my_tuple = ((1,2),(10,20))my_tuple = ((10,),)# 元组中的元素不可修改my_num = (1,2,3)#.原创 2021-06-15 11:21:42 · 102 阅读 · 0 评论