自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 appium的安装与使用

appium用python开发要装下面的包pip install appium-python-clientadb操作命令:#列出连接电脑上的安卓设备adb devices -l如果你应用已经安装在手机上了,可以直接打开手机上该应用,进入到你要操作的界面然后执行adb shell dumpsys activity recents | find "intent={"会显示如下,最近的 几个 activity 信息,intent={act=android.intent.acti...

2020-09-30 17:38:58 436

原创 python线程池(threadpool)实现多线程生成HTMLTestRunner测试报告

#python线程池(threadpool)#pip install threadpool"""使用介绍(1)引入threadpool模块(2)定义线程函数(3)创建线程 池threadpool.ThreadPool()(4)创建需要线程池处理的任务即threadpool.makeRequests()(5)将创建的多个任务put到线程池中,threadpool.putRequest(6)等到所有任务处理完毕theadpool.pool()"""import unitt.

2020-09-28 15:35:04 414

原创 unittest多线程生成报告HTMLTestRunner和(BeautifulReport)

安装tomorrow库 pip install tomorrow使用多线程tomorrow库,在要创建线程执行的函数上加个@threads(4),括号里面代码线程的数量,数字越大,运行的速度越快python3下tomorow模块报语法错误def async(n, base_type, timeout=None): ^ SyntaxError: invalid syntaxasync是python关键字,换个函数名,比如async_tm# coding=utf-8"""#下面是H.

2020-09-28 15:07:28 855 2

原创 multiprocessing进程模块

multiprocessing模块提供了一个Process类来代表一个进程对象,multiprocessing模块像线程一样管理进程,这个是multiprocessing的核心,它与threading很相似,对多核CPU的利用率会比threading好的多。看一下Process类的构造方法:__init__(self, group=None, target=None, name=None, args=(), kwargs={})参数说明:group:进程所属组(基本不用)target...

2020-09-28 00:30:04 665

原创 Selenium+WebDriver 各浏览器驱动下载与版本对应

一、chromedriver要与chrome版本对应chromedriver与chrome浏览器版本对应表(记得就会更新):chromedriver版本 支持的Chrome版本 v2.36 v64-66 v2.35 v62-64 v2.34 v61-63 v2.33 v60-62 v2.32 v59-61 v2.31 v58-60 v2.30 v58-60 v2.29 v56-58 v2.28 v55-5

2020-09-27 16:53:37 6838

原创 python之线程threading模块和多线程启动不同浏览器

import threadingimport timedef test(): for i in range(10): print("test is run:", i) time.sleep(1)if __name__ == '__main__': # 创建子线程 t1 = threading.Thread(target=test) t1.setDaemon(True) #设置t1(test函数)为守护线程,当主线程结束了,也随之结束.

2020-09-27 00:36:41 479

原创 unittest中HTMLTestRunner和BeautifulReport测试报告

HTMLTestRunner测试报告#coding=utf-8# 目前HTMLTestRunner只能针对单个测试文件生成测试报告# 下面是HTMLTestRunner作用于整个项目的方法#单线程测试import unittestimport timefrom HTMLTestRunner import HTMLTestRunnerfrom framework_Var_A.var_A import *import ostest_dir = testcase_path# 指定测试用

2020-09-26 00:25:31 496

原创 python中os模块获取目录和路径

"""# os.path.dirname(path) 功能:绝对路径,去掉文件名,返回目录,如果是相对路径,返回空目录# path2 = os.path.dirname(os.path.dirname(__file__))# print(path2)#获取当前运行脚本的绝对路径(去掉最后一个路径)# os.path.abspath(__file__) 作用: 获取当前脚本的完整(绝对)路径,包含文件名# E:\PycharmProjects\lovetest\keyword_driver_fr.

2020-09-26 00:19:45 2291

原创 Python中读取yaml文件数据和框架设计的一点思路

框架设计思路:1、数据层、用例层、逻辑层分离,逻辑层包含(公用的方法的封装:l例如实现打开浏览器,访问url,输入用户名这些实现测试步骤的经常用到的方法封装)和(数据提取)element_A.yaml文件(数据层)host: url: http://slw.shengyj.com/slw/login/indexlogin: username: xpath>//*[@id="loginindex"]/div[2]/div[2]/div/div[3]/div[4]/form...

2020-09-25 16:19:22 577

原创 python中通过configparser模块读取ini配置文件的数据

#coding=UTF-8#通过configparser模块读取ini配置文件的数据from configparser import ConfigParserfrom framework_Var_A.var_A import *class ParseIni: def __init__(self): # 创建配置文件解析器对象 self.conf = ConfigParser() # 获取elements_A.ini配置文件的路径 .

2020-09-25 15:24:53 466

原创 python中log日志配置

# Logger.conf[loggers] # loggers 日志器对象列表keys=root, main[handlers] # handlers 处理器对象列表keys=consoleHandlers, fileHandlers[formatters] # formatters 格式对象列表keys=fmt[logger_root] # 设置日志级别、输出位置(控制台和文件)level=DEBUGhandlers=consoleHandlers,fileHandlers.

2020-09-23 18:01:18 1530

原创 python中三种时间等待

强制等待:sleep()import timesleep(5) #等待5秒设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。 缺点:不智能,使用太多的sleep会影响脚本运行速度。隐式等待:implicitly_wait()driver.implicitly_wait(10) #隐式等待10秒由webdriver提供的方法,一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用,它不针对某一个元素,是全局元素等待

2020-09-23 14:26:23 9039

原创 python中同时给多个变量赋值和zip()函数的使用

# Assign values directlya, b = 0, 1print(a, type(a))print(b, type(b))assert a==0# Assign values from a list(r, g, b) = [10, "Green", "Blue"]print(r, type(r))print(g, type(g))# Assign values from a tuple(x, y) = (1, 2)print(x, type(x))执行结果..

2020-09-23 13:32:49 673

原创 python中os.path.dirname和os.path.abspath获取当前脚本的绝对路径

import os#该文件所在位置:D:\第1层\第2层\第3层\第4层\第5层\文件名.pypath1 = os.path.dirname(__file__)print(path1)#获取当前运行脚本的绝对路径path2 = os.path.dirname(os.path.dirname(__file__)) #print(path2)#获取当前运行脚本的绝对路径(去掉最后一个路径)path3 = os.path.dirname(os.path.dirname(os.path.dirn.

2020-09-22 18:25:09 1241

原创 ddt之读取列表字典,多个字典

import unittestfrom ddt import ddt,data,unpack,file_data#导入ddt中的ddt,data,unpack方法@ddt #首先用ddt装饰类class caseddt_D2(unittest.TestCase): # 单个列表字典,未拆分 @data([{"name": "peter", "age": 15, "addr": "chengdu"}]) def test_8(self, value): .

2020-09-22 10:58:24 889

转载 Python类中的实例方法、静态方法和类方法详解(包含区别和用法)

通过前面的学习,类方法大体分为 3 类,分别是类方法、实例方法和静态方法,其中实例方法用的是最多的。我们知道,实例方法的调用方式其实有 2 种,既可以采用类对象调用,也可以直接通过类名调用。通常情况下,我们习惯使用类对象调用类中的实例方法。但如果想用类调用实例方法,不能像如下这样:class CLanguage: def info(self): print("我正在学 Python") #通过类名直接调用实例方法 CLanguage.info()运行上面代码,程序会报出如下错误:.

2020-09-21 16:40:54 1231

原创 python中同一个类中方法之间的变量怎么调用

python中同一个类中方法之间的变量怎么调用class A: A = "你好" def test_a(self): self.m = "hello" def test_b(self): self.test_a() # 要访问同个类中的其它方法定义的实例变量,必须先调用该方法,不然会报错 n = self.m + "world" print(n) def test_c(self):

2020-09-20 23:55:13 9981 5

原创 python中openpyxl对Excel的操作

安装方式:pip install openpyxl一.Excel中的三大对象WorkBook:工作簿对象 Sheet:表单对象 Cell:表格对象二、openpyxl对Excel的操作创建一个工作薄:wb = openpyxl.Workbook() 新增一个sheet表单:wb.create_sheet('test_case') 保存case.xlsx文件:wb.save('cases.xlsx') 打开工作簿:wb = openpyxl.load_workbook('cases.x

2020-09-19 23:44:54 1048

原创 关键字驱动测试原理,Po模式和关键字模式

Po模式和关键字模式Po模式:What?PO模式(page object model):是一种设计思想,是为了解决自动化测试过程中随着代码量的增加导致的大量代码难以维护、难以扩展、可读性极差等灾难性的事件的方案,所谓Page Object及页面对象,页面对象是哪些东西呢?比如一个按钮是一个对象,一个页面也是一个对象.实际的应用当中,一般我们会抽取一个页面的基类,用于对一些页面元素的功能操作进行扩展,比如获取title,模态窗口的处理,一些基本控件的处理都可以放在这个页面的基类里面。后面的..

2020-09-19 19:34:00 3378

原创 selenium中By类的使用,By类中的8种元素定位方法

#引用By类要先导入from selenium.webdriver.common.by import By# self.driver.find_element_by_id() # upper() 方法将字符串中的小写字母转为大写字母。 #getattr()方法获取对象的属性值 def locator(self, name, value): #return self.driver.find_element(name, value) #self..

2020-09-19 17:24:14 5781

转载 Python类变量和实例变量(类属性和实例属性)

Python类变量和实例变量(类属性和实例属性)目录类变量(类属性) 实例变量(实例属性) 局部变量转载:http://c.biancheng.net/view/2283.html无论是类属性还是类方法,都无法向普通变量或者函数那样,在类的外部直接使用它们。我们可以将类看做一个独立的空间,则类属性其实就是在类体中定义的变量,类方法是在类体中定义的函数。前面章节提到过,在类体中,根据变量定义的位置不同,以及定义的方式不同,类属性又可细分为以下 3 种类型:类体中、所有函数之..

2020-09-19 16:36:58 196

原创 getattr() 函数用于返回一个对象属性值

class A(object): bar = 1a = A()getattr(a, 'bar') # 获取属性 bar 值1getattr(a, 'bar2') # 属性 bar2 不存在,触发异常Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: 'A' object has no attribute ...

2020-09-19 16:34:39 201

转载 Python中*args、**kwargs到底是什么、有啥区别、怎么用

相信学Python的小伙伴肯定有这样的尴尬局面,给一个函数不会用,原因是:不知道参数列表中的类型是什么意思,比如初学者都会疑问的:*args和**args到底是怎么用。当你知道这个时,我猜你肯定能会用好多函数了!#*args的用法:当传入的参数个数未知,且不需要知道参数名称时。def func_arg(farg, *args): print("formal arg:", farg) for arg in args: print("another arg:...

2020-09-18 18:10:31 740

原创 Python 数据驱动工具:DDT

python 的unittest 没有自带数据驱动功能。所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成。资料:http://ddt.readthedocs.io/en/latest/ddt:装饰类,也就是继承自TestCase的类。ddt.data:装饰测试方法。参数是一系列的值。ddt.file_data:装饰测试方法。参数是文件名。文件可以是json 或者 yaml类型。注意,如果文件以”.yml”或者”.yaml”结尾,ddt会作为y

2020-09-18 18:05:32 685

原创 fixture使用案例scope=“function“

importpytest#fixture(scope="function",params=None,autouse=False,ids=None,name=None):#@pytest.fixture()如果不写参数,默认就是scope="function",它的作用范围是每个测试用例来之前运行一次#如果autouse为True,则为所有测试直接激活fixture,无需往每个函数传入fixture就可以调用它。如果为False(默认值),则需要往测试函数传入fixture标记...

2020-09-09 17:48:19 1062

原创 pytest使用简介和pytest.main()运行测试用例

pytest装饰器@pytest.mark.自定义名称,如@pytest.mark.smoke运行pytest -m 'smoke' A文件名,执行A文件中用smoke标记的测试;不指定A文件,运行pytest -m smoke ,执行当前目录下以及子目录中所有用smoke标记的测试函数。@pytest.mark.skip(reason='跳过的原因') ,执行测试时,被标记的测试函数或方法跳过不执行@pytest.mark.xfail() 被标记的测试函数或方法预期失败...

2020-09-06 21:09:10 2531

空空如也

空空如也

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

TA关注的人

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