Python
夜莺_Cody
这个作者很懒,什么都没留下…
展开
-
Python replace() 和 re.sub() 字符串字符替换
replace()testStr = 'aa:bb[cc'testStr.replace(':','_')每次只能替换一个字符或字符串re.sub()import retestStr = 'aa:bb[cc}'把 :[} 替换成 _re.sub(r'[:[}]', '_', testStr)re.sub() 的第一个参数是pattern,使用正则表达式,所以例子中 r'[:[}]' 代表 [] 中的任何一个字符,更多使用请另外学习正则表达式...转载 2020-07-24 23:08:33 · 291 阅读 · 0 评论 -
Python中进行JSON转换的方法
JSON是什么?它是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构,使得 JSON 成为理想的数据交换语言,而且它非常方便我们进行阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON 名称/值对JSON 数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:"name" :...转载 2020-02-20 15:57:38 · 495 阅读 · 0 评论 -
python使用with open() as 读写文件
读文件:要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符:>>> f = open('E:\python\python\test.txt', 'r')标示符'r'表示读,这样,我们就成功地打开了一个文件。如果文件不存在,open()函数就会抛出一个IOError的错误,并且给出错误码和详细的信息告诉你文件不存在:...转载 2020-02-20 15:08:24 · 2017 阅读 · 0 评论 -
requests出现InsecureRequestWarning解决
问题:使用Python3requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下warning:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: htt...原创 2020-02-13 16:11:45 · 8415 阅读 · 0 评论 -
Python使用pip安装包、查看是否已安装、检测是否需要更新、升级包、卸载包、使用临时安装源、导出迁移依赖库
pip安装包pip install [安装包名]pip查看是否已安装pip show --files [安装包名]pip检查哪些包需要更新pip list --outdatepip升级包pip install --upgrade [要升级的包名]pip卸载包pip uninstall [要卸载的包名]pip临时使用国内安装源pip insta...原创 2019-11-19 10:17:24 · 3197 阅读 · 0 评论 -
appium - 获取应用包名和入口activity并与Appium建立连接
1、测试前准备,需要通过的方式去和appium建立连接必备:appium Server、操作系统、系统版本、APP应用2、如何识别Android应用在Android上通过包名代表APP应用,并是有唯一标识的,那么是如何得到包名和入口activity的?获取应用包名和入口activity:aapt命令aapt目录:安卓SDK的build-tools目录下示例:/Us...原创 2019-07-16 23:56:38 · 504 阅读 · 0 评论 -
appium - 介绍
1、特点appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。 “移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。 “移动web应用”是指使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的 Chrome)。 “混合...原创 2019-07-16 21:24:43 · 475 阅读 · 0 评论 -
pytest框架学习(五) - allure报告
allure文档:https://docs.qameta.io/allure/安装allure命令行:如果是ubuntu:如下安装,如果是其他的,请源码安装,请跳转:https://bintray.com/qameta/generic/allure2sudo apt-add-repository ppa:qameta/alluresudo apt-get update sudo a...转载 2019-07-07 11:42:50 · 474 阅读 · 0 评论 -
Python 使用 JsonPath 完成接口自动化测试中参数关联和数据验证
背景:接口自动化测试实现简单、成本较低、收益较高,越来越受到企业重视 restful风格的api设计大行其道 json成为主流的轻量级数据交换格式痛点:接口关联 也称为关联参数。在应用业务接口中,完成一个业务功能时,有时候一个接口可能不满足业务的整个流程逻辑,需要多个接口配合使用,简单的案例如:B接口的成功调用依赖于A接口,需要在A接口的响应数据(response)中拿到需要的字段...转载 2019-07-11 14:32:17 · 374 阅读 · 0 评论 -
python中pip 安装、升级、升级固定的包
1、pip下载安装1.1 pip下载进入https://pypi.python.org/pypi/pip,下载 .tar.gz压缩包1.2Linux安装pip# tar -xzvf pip-1.5.4.tar.gz 解压# cd pip-1.5.4 进入解压文件# python setup.py install ...原创 2019-07-13 22:54:11 · 385 阅读 · 0 评论 -
pytest框架学习(四) - 重运行机制
pytest重运行机制pytest提供了失败重运行机制安装方法:pip install pytest-rerunfailures使用方法:命令行参数形式:命令:pytest --reruns 重复次数比如:pytest --reruns 2 表示:运行失败的用例可以重新运行2次命令:pytest --reruns 重复次数 --reruns-delay 次数之间...原创 2019-07-03 22:33:43 · 845 阅读 · 0 评论 -
pytest框架学习(三) - 测试用例
简单的登录用例:from pageObjects.index_page import IndexPagefrom testDatas import login_datas as ldimport pytest@pytest.mark.login@pytest.mark.usefixtures("init_driver")class TestLogin(): # 正常场景...原创 2019-07-03 21:45:58 · 244 阅读 · 0 评论 -
pytest框架学习(二) - pytest-html报告与fixture使用以及conftest.py文件
优化 - pytest - html需要安装pytest - html插件pytest可以生成多种样式的结果1.生成 JunitXML 格式的测试报告: 命令: --junitxml=path2.生成result log格式的测试报告: 命令: --resultlog=report\log.txt3.生成html格式的测试报告: 命令: --html=report\test_o...原创 2019-07-02 23:20:09 · 869 阅读 · 0 评论 -
appium - 常用的元素定位
元素定位1.通过id定位(取resource-id值)driver.find_element_by_id('com.android.dongsport:id/tv_home1')driver.find_elements_by_id('com.android.dongsport:id/tv_home1')2.通过class_name定位(取class值)driver.find_...原创 2019-08-05 22:08:04 · 192 阅读 · 0 评论 -
appium - 触屏(滑动)操作
一、swipe()通过传递坐标信息即可完成滑动为了通用,可以使用其他机型的手机,利用百分比的方式操作获取整个屏幕的宽和高:# 获取整个屏幕的宽和高size = driver.get_window_size()从右向左滑动,起点x整个宽度的百分比,y整个高度的百分比# 起点x 整个宽度的百分比 y 整个高度的百分比driver.swipe(size['widt...原创 2019-08-06 21:54:27 · 1642 阅读 · 0 评论 -
pytest框架学习(六) - pytest.ini
1.前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。2.ini配置文件pytest里面有些文件是非test文件pytest.ini pytest的主配置文件,可以改变pytest的默认行为 conftest.py 测试用例的一些fixture配置 init.py 识别该文件夹为python的p...转载 2019-09-16 13:13:26 · 599 阅读 · 0 评论 -
Python来获取昨天和今天的日期
import datetime# 获取今天(现在时间)today = datetime.datetime.today()# 昨天yesterday = today - datetime.timedelta(days=1)# 明天tomorrow = today + datetime.timedelta(days=1)# 获取当前日期date = datetime.date.t...原创 2019-09-02 17:12:10 · 15876 阅读 · 0 评论 -
selenium - 判断元素存在
在实际工作中可能会遇到元素存在与不存在的情况,如果元素不存在的话,操作元素会报错,或者元素有多个,不唯一的时候也会报错。下面就看一下示例。def is_element_exist(self,loc,model): """ :param loc: 元素定位表达;元组类型,表达方式(元素定位类型,元素定位方法) :param model: 等待失败时,截图操作,图片文件中...原创 2019-08-30 10:37:56 · 1258 阅读 · 0 评论 -
appium - Python+yaml语法
yaml是一种简介的非标记语言。yaml以数据为中心,使用空白,缩进,分行组织数据,从而使得标识更加简介易读。基本规则:1、大小写敏感。2、使用缩进标识层级关系。3、禁止使用tab缩进,只能使用空格键。4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。5、使用#表示注释。6、字符串可以不用引号标注。三种数据结构:1、字典使用冒号(...原创 2019-08-22 22:10:11 · 444 阅读 · 0 评论 -
Python自动化 - 使用 Pandas 来处理测试数据
一、思考1.Pandas是什么?功能极其强大的数据分析库 可以高效地操作各种数据集 csv格式的文件 Excel文件 HTML文件 XML格式的文件 JSON格式的文件 数据库操作 2.学员面试题通过面试题引出主题,读者可以思考,如果你遇到这题,该如何解答呢?二、使用pandas来操作Excel文件1.安装a.通过Pypi...转载 2019-08-15 11:33:47 · 287 阅读 · 0 评论 -
appium - 混合应用-h5
1、native、web、hybrid简介目前主流应用程序大体分为三类:web APP(网页应用)、hybrid APP(混合应用)、native APP(原生应用)。native:优点:直接依托于操作系统,交互性最强,性能最好;功能最为强大,特别是在与系统交互中,几乎所有功能都能实现。缺点:开发成本高,无法跨平台,不同平台Android和iOS上都要各自独立开发;门槛较高,原生人...原创 2019-08-14 22:12:35 · 446 阅读 · 0 评论 -
appium - toast弹出框处理
一、toast简介toast是Android中用例显示信息的一种机制,和dialog对话框不一样的是,toast是没有焦点的,而且toast显示的时间有限,过一定的时间就会自动消失,并且也不能被点击在appium中,如果想要定位到toast信息,通过appium自带的inspector或者SDK里面的uiautomatorviewer工具发现是定位不到的,没有对应的属性信息,不过,在app...原创 2019-08-13 21:37:42 · 986 阅读 · 0 评论 -
pytest框架学习(一) - pytest安装与mark功能
一.pytest 介绍pytest:基于 unittest 之上的单元测试框架1.自动发现测试模块和测试方法2.断言使用 assert +表达式即可3.可以设置会话级\模块级\类级\函数级fixtures 数据准备+清理工作4.有丰富的插件库,目前在 600 个以上安装命令pip install pytest安装 HTML 报告的插件pip instal...原创 2019-06-26 23:14:21 · 2374 阅读 · 0 评论 -
python自定义封装 logging 模块
import loggingfrom logging.handlers import TimedRotatingFileHandlerfrom Common.file_path import log_pathclass MyLog: def logger(self):#将日志收集器的名字做为参数传入 collector = __name__ co...原创 2019-06-25 22:06:01 · 1468 阅读 · 0 评论 -
Python 之ConfigParser模块
一、ConfigParser简介ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。[db]db_host = 127.0.0.1db_port = 69db_user = rootdb_pass = roothost_port = 69[concurre...转载 2019-04-30 16:25:01 · 109 阅读 · 0 评论 -
SMTP发送邮件
import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.header import Header# 第三方 SMTP 服务mail_host = "xxxx.xxx.com" # 设置服务器mail_user = "xxxx...原创 2019-04-27 19:25:45 · 882 阅读 · 0 评论 -
os路径拼接
import os# 该文件路径project_path = os.path.realpath(__file__)# print('该文件的路径是:{}'.format(project_path))# 获取项目的根路径root_path = os.path.split(os.path.split(os.path.split(project_path)[0])[0])[0]# pri...原创 2019-04-22 21:56:36 · 919 阅读 · 0 评论 -
pymysql和mysql-connector-python驱动,连接MySQL数据库
1.首先安装第三方插件pip安装pymysql:pip install pymysqlpip安装mysql-connector-python:pip install mysql-connector-python2.连接数据库首先要提供数据库信息:地址\端口\用户名\密码config = { "host":"xxx.xxx.xxx.xxx", # 地址 ...原创 2019-04-14 16:52:58 · 6027 阅读 · 0 评论 -
http请求带Authorization
Authorization(用户凭证)基本概念:授权authorization是指,根据用户提供的身份凭证,生成权限实体,并为之授予相应的权限。方法:在接口自动化测试中,我们会遇到Authorization,那要如何把Authorization带进去呢,方法如下:# 请求得到值res = requests.post(url,json=data,verify=False)pa...原创 2019-04-09 22:21:47 · 15436 阅读 · 1 评论 -
使用openpyxl读取Excel数据,并根据配置文件执行指定用例
初学者,见成长from openpyxl import load_workbookclass doExcel: def __init__(self,excelFile,excelSheet,confFile): self.excelFile = excelFile self.excelSheet = excelSheet self...原创 2019-04-05 21:58:33 · 669 阅读 · 0 评论 -
suds 在python3.x上的安装并访问webservice
类库安装直接使用命令行:pip install suds报错:Traceback (most recent call last): File "setup.py", line 20, in <module> import suds File "/root/python-suds-0.4.1/suds/__init__.py", line 154, i...原创 2019-05-09 09:11:25 · 346 阅读 · 0 评论 -
selenium自动化测试框架PO设计模式
整理一下 selenium 自动化测试实践中使用较多的 PO(PageObject)设计模式面向对象的特性:封装\继承\多态.在自动化中一样适用,selenium 自动化测试中有一个名字常常被提及 PageObject(思想与面向对象的特性相同),通过 PO 模式可以大大提高测试用例的维护效率传统测试脚本的弊端:测试脚本分离,维护成本高可扩展性差复用性低等PageOb...原创 2019-06-21 22:20:54 · 15020 阅读 · 12 评论 -
selenium自动化之文件上传操作
上传操作有两种情况1.如果是input可以直接输入路径的,那么直接调用send_keys输入路径2.非input标签的上传,则需要借助第三方工具 2.1 AutoIt 我们去调用其生成的au3或exe文件 2.2 SendKeys第三方库(目前只支持到2.7版本) 网址:http://pypi.python.org/pypi/SendKeys 2.3 Python py...原创 2019-06-17 22:03:24 · 2017 阅读 · 1 评论 -
selenium自动化之滚动条操作
当待操作的元素在可视区外,则需要将待操作的元素滚到课时区域当中基本思路:1.先找到元素element = driver.find_element_by_xpath('//span[text()="2" and @class="pc"]')2.再将元素拖动到可视区域(通过执行JavaScript语句实现)driver.execute_script('arguments[0]....原创 2019-06-16 20:55:15 · 3764 阅读 · 0 评论 -
selenium常用的浏览器窗口操作
我们平时正常使用浏览器的时候,在某一个操作可能会打开一个新的浏览器标签,是直接跳到新标签页的;那么在自动化中是不会自动选择新打开的标签页的,在自动化中是如何安全稳定的选取新标签页的,代码如下:from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom seleniu...原创 2019-06-10 21:34:45 · 848 阅读 · 0 评论 -
selenium自动化js处理日历控件操作
日历控件是在web上常遇到的场景,有些事可以输入,但有些事不能输入的,接下来以12306网站为例,讲解如何解决日历控件为readonly属性的问题基本思路:先用js去掉readonly属性,然后直接输入日期文本内容用Google查看输入框的属性:readonly="",如下:<input type="text" class="input" value="2018-07-21" i...原创 2019-06-14 12:08:31 · 849 阅读 · 0 评论 -
selenium自动化常用的键盘操作
selenium提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要导入from selenium.webdriver.common.keys import Keys在keys类中,定义了非常多的按键操作,以下内容是在实际上会常用到的组合键:我们经常会用到的Ctrl+A,Ctrl+C都是组合键在使用按键操作的时候需要借助一下send_keys()来模拟操作Keys.CO...原创 2019-06-13 22:09:01 · 2350 阅读 · 0 评论 -
selenium自动化几个常用的鼠标操作
由selenium的ActionChains类来完成模拟鼠标操作主要操作流程:1.存储鼠标操作2.perform()来执行鼠标操作支持的操作如下:double_click() 双击操作context_click() 右击操作drag_and_drop() 拖拽操作.左键按住拖动某一个元素到另一个区域,然后释放按键move_to_element() 鼠标悬停,常会用到...原创 2019-06-13 21:10:12 · 1081 阅读 · 0 评论 -
selenium处理select/option
selenium提供了Select类来处理select/option引入类:from selenium.webdriver.support.ui import Select选择下拉列表值:1.通过下标选择:select_by_index(index) 从0开始2.通过value属性:select_by_value(value值)3.通过文本内容:select_by...原创 2019-06-12 22:10:30 · 5793 阅读 · 0 评论 -
selenium driver:No such file or directory: 'geckodriver'
在Linux或Mac运行一个包含Selenium的Python程序时遇到这样的报错:解决的办法是到这里下载对应浏览器的Driver,然后再将解压后的文件放到 usr/bin/ 或者 usr/local/bin/ 目录之下就可以了。另附:driver下载地址(含有其他有关应用):https://npm.taobao.org...转载 2019-05-28 21:47:22 · 641 阅读 · 0 评论