python
文章平均质量分 55
df0128
在路上
展开
-
pytest利用pytest-html生成html报告
1、安装pytest-html使用命令pip install pytest-html -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com来安装pytest-html2、书写pytest测试用例书写测试用例文件Test_simple.py:#-*- coding: utf-8 -*-impo...原创 2019-06-03 11:33:59 · 8069 阅读 · 3 评论 -
linux系统下载python2和python3共存的情况下使用分别使用pip
前言:在linux系统中,由于yum使用python2,所以安装了python2.x,相应的也安装了pip工具,此时我需要用到python3,那么此时在使用之前的那个pip工具就无法为python3添加库了,故需要分开使用;安装pip3前提:安装了python3进入python3的解压出来的安装包目录;输入命令./configure –prefix=/python3 –enable-s...原创 2019-03-08 18:22:26 · 2545 阅读 · 0 评论 -
linux下运行python脚本和隐藏运行模式
1、一般运行方式:$ python *.py这种方式运行的话脚本内部所有的print都会打印在当前控制台;2、隐藏运行模式:nuhup python -u test.py > test.log 2>&1 &test.log 为内部所有的log输出的位置;2>&1 表示将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-...原创 2019-03-08 16:30:28 · 1188 阅读 · 0 评论 -
Python连接MongoDB集群
1、安装pyMongo(前提:必须安装了python和pip)打开cmd输入pip instal pymongo,等待安装完成;2、连接MongoDB代码如下:from pymongo import MongoClient, ReadPreferencedef db_conn(): client = MongoClient(['192.168.2.188:20000', '1...原创 2019-03-06 10:30:04 · 3266 阅读 · 1 评论 -
【python学习笔记】列表常用的内置函数
对于列表来讲,有三个内置函数非常有用: filter(),map() 以及 reduce()。1、filter(function, sequence)filter(function, sequence)返回一个sequence(序列),包括了给定序列中所有调用function(item)后返回值为true的元素(如果可能的话,会返回相同的类型)。如果该 序列 (sequence)是一个str,...原创 2018-11-12 14:03:48 · 874 阅读 · 1 评论 -
IndentationError: expected an indented block
在使用的时候会出现这种错误:>>> def person(name, age, *, city, job):... print (name,age,city,job) File "<stdin>", line 2 print (name,age,city,job) ^IndentationError: expected an inde...原创 2018-11-08 23:16:44 · 1724 阅读 · 0 评论 -
【python学习笔记】lambda表达式
在python中lambda关键字用于创建短小的匿名函数,Lambda 形式可以用于任何需要的函数对象。出于语法限制,它们只能有一个单独的表达式。标准范式为lambda [parameter_list]: expression,即lambda 参数列表:表达式;这里是个最简单的用法范例:>>> f=lambda x,y,z:x+y+x>>> f(1,2,...原创 2018-11-08 23:09:18 · 307 阅读 · 0 评论 -
【python学习笔记】python函数定义和传参方法说明
一、函数定义方式函数定义用关键字def,其参数传递不用设置类型,也不用定义返回,然后在函数名称后加上:号,这点和java很不一样,相对来说更加简单了;另外包含关系上用四个空格来标识,而非java的;号;如下为一个范例,定义了一个函数用来生成任意上界的菲波那契数列:# -*- coding: UTF-8 -*-def fib(n): a,b = 0,1 while a<...原创 2018-11-08 22:13:57 · 572 阅读 · 0 评论 -
【python学习笔记】range()方法使用
一、方法说明range方法还有两个方法,如下图所示上图中第二个方法的step是可选参数,[]代表可选如下为用法介绍1、rang(n)range(n)方法会生成一个数字列表,其从0开始到n结束(不包括n),包含n个元素,步进为1,譬如:>>> range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]2、range(a,b)range(a,...原创 2018-11-08 19:02:02 · 6608 阅读 · 0 评论 -
【python学习笔记】列表生成式和生成器
一、列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。列表生成式由包含一个表达式的括号组成,表达式后面跟随一个for子句,之后可以有零或多个for或if子句。结果是一个列表,由表达式依据其后面的for和if子句上下文计算而来的结果构成。举个例子,要生成list[1, 2, 3, 4, 5, 6, 7, 8, 9, ...原创 2018-11-11 17:31:38 · 243 阅读 · 0 评论 -
【python学习笔记】列表、元组和字典的迭代
在python中,列表和元组的迭代是通过for....in....来完成的;>>> a=[1,2,3,4,5,6,7]>>> for index in a:... print(index)...1234567>>>>>>> b=(11,22,33)>>> f原创 2018-11-11 17:02:09 · 796 阅读 · 0 评论 -
【问题记录】Python运行报错:can only concatenate str (not "int") to str
python的学习使用中遇到了这个错误:can only concatenate str (not "int") to str;上网查过后发现是因为我没有做数据类型的转换,python并不能像java一样,在做拼接的时候自动把类型转换为string类型;故而需要进行一个类型转换,譬如将print(1+"a")改为print(str(1)+"a")就可以了;特此记录下,以免后续再犯...原创 2019-03-06 17:38:59 · 168451 阅读 · 16 评论 -
python3获取时间戳、秒数和日期时间的相互转换
1、将秒数转换为时间方法代码:import timedef getTime(seconds): timeArray = time.localtime(seconds) otherStyleTime = time.strftime("%H:%M:%S", timeArray) print(otherStyleTime)if __name__ == '__main_...原创 2019-03-06 18:29:18 · 16184 阅读 · 1 评论 -
python3.6: error while loading shared libraries: libpython3.6m.so.1.0
前两天在一台linux服务器安装python3.6的时候报了如下错误:python3.6: error while loading shared libraries: libpython3.6m.so.1.0:cannot open shared object file: No such file or directory使用命令ldd /usr/local/Python-3.6/bin/py...原创 2019-04-22 10:13:08 · 17660 阅读 · 2 评论 -
jenkins+allure+pytest持续集成(使用非jenkins机器作为执行机)
1、jenkins安装插件插件名称为Allure Jenkins Plugin,如下图所示:2、jenkins安装allure_commandline如果jenkins上有安装maven的话则此工具安装就比较简单了,打开jenkins的Global Tool Configuration,找到Allure Commandline,选择安装,如下所示:如果没有安装maven,则需要去jen...原创 2019-06-06 17:02:29 · 2031 阅读 · 0 评论 -
pytest教程之代码运行方式
前言pytest用例除了常用的命令行运行方式外,还有另外一种运行方式,即为代码方式,通过pytest.main()来执行,即可抓取此main文件所在的目录和同级下所有目录里的用例;使用说明如果要使用命令行方式运行某些用例,则可以通过添加参数的方式来进行def main(args=None, plugins=None): """ return exit code, after per...原创 2019-06-06 15:43:35 · 1739 阅读 · 0 评论 -
pytest教程之基础使用
安装安装使用如下代码:pip install pytest用例pytest的用例都是以默认规则来的,总体来说就是如下几种:测试文件以test_开头(以_test结尾也可以),或者Test_测试类以Test开头,并且不能带有 init 方法测试函数以test_开头如下为一个测试工程,其中不符合上述规则的文件或者用例都不会被识别为用例:打开Terminal运行pytest -...原创 2019-06-06 14:57:33 · 1603 阅读 · 0 评论 -
pytest教程之命令行方式运行用例
前言用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框架要好用许多,至少不用写xml文件,为了提供定制化运行用例的方式,pytest提供了许多运行命令以供定制化运行某一类测试用例或者某个测试用例等;pycharm里命令行运行用例在pycharm里写好了测试用例后如何运行呢?pycharm里好像并没有像eclipse里提供TestNG用的插件一样可以一键执行的方式,那...原创 2019-06-06 14:12:15 · 15835 阅读 · 4 评论 -
pytest教程之分组测试
分组测试用法与java的TestNG一样,pytest同样有进行分组测试的方案,方法即使用@pytest.mark.组名的方式,譬如如下范例:#-*- coding: utf-8 -*-import pytestclass Test_simple(): @pytest.mark.test def test_case1(self): print("tes...原创 2019-06-06 11:12:32 · 1382 阅读 · 0 评论 -
pytest教程之设置setup和teardown
在pytest中有四种setup和teardown,其中setup_module和teardown_module在整个测试用例所在的文件中所有的方法运行前和运行后运行,只会运行一次;而setup_class和setup_class则在整个文件中的一个class中所有用例的前后运行,setup_method和teardown_method在class内的每个方法运行前后运行,而setup_funct...原创 2019-06-05 18:26:24 · 4352 阅读 · 1 评论 -
pytest+allure生成测试报告
一、安装pytestPytest是Python的单元测试框架,非常方便和易用。可以规模化以及编写更加复杂的测试用例。安装方法如下:pip install pytest二、安装allure插件网上很多文档说插件使用pytest-allure-adaptor,单我目前使用python3如果安装这个则会出现如下错误:module 'pytest' has no attribute 'allu...原创 2019-06-05 17:58:21 · 3417 阅读 · 0 评论 -
python获取未来和过去的时间
获取现在的时间用方法datetime.datetime.now().strftime('%F %T'),获取未来或者过去的时间可以用如下方法:#-*- coding: utf-8 -*-import datetimeif __name__ == '__main__': print(datetime.datetime.now().strftime('%F %T')) prin...原创 2019-05-23 18:20:40 · 2834 阅读 · 1 评论 -
linux环境下python的virtualenv虚拟环境与使用
一、前言python的虚拟环境virtualenv是用于创建一个独立的python环境,带独立的库,和其他python环境完全独立互不影响,可以创建多个。需要在机器上先安装好一个python。二、创建virtualenv虚拟环境1、安装virtualenv使用pip安装virtualenv,命令如下:$ pip install virtualenv2、创建一个虚拟环境使用如下命令创...原创 2019-04-29 13:39:09 · 667 阅读 · 0 评论 -
python安装psycopg2报错’Error: pg_config executable not found‘
最近代码需要使用到postgresql,但是在安装psycopg2的时候发现报错了,错误如下:Looking in indexes: http://mirrors.aliyun.com/pypi/simple/Collecting psycopg2 Downloading http://mirrors.aliyun.com/pypi/packages/23/7e/93c325482c328...原创 2019-04-26 17:33:14 · 16593 阅读 · 5 评论 -
【python学习笔记】切片方法
1、切片说明和简单用法python提供了一个切片功能,用这种方法可以很简单的获取列表或者元组等的某几个元素,切片返回的结果的类型和被切片的是保持一致的;基本用法如下:&amp;gt;&amp;gt;&amp;gt; L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']&amp;gt;&amp;gt;&amp;gt; L[0:3]['Michael', 'Sara原创 2018-11-11 14:29:46 · 874 阅读 · 0 评论 -
【Python学习笔记】python列表方法
在python中list是一个有序的集合,可以随时添加和删除里边的元素其初始化可以使用如下语句:&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;gt; a=[11,22,33,44,55,66]如下为方法说明1、append(x)在list的尾部加入一个成员x:&amp;amp;amp;amp;amp;amp;gt;&原创 2018-11-08 13:48:44 · 176 阅读 · 0 评论 -
selenium中使用js进行滚动条的滚动
由于有的网页内容较多,如不在显示范围内则无法找到该元素,那么就需要用滚动条来进行拖拉页面使该元素处于可视范围内,使用js可以简单的执行此操作,滚动范围为0--1000,代码如下: js="var q=document.documentElement.scrollTop=500"driver.execute_script(js)原创 2015-04-21 17:40:11 · 1468 阅读 · 0 评论 -
windows7下搭建robot framework环境指导
第一步 安装python并设置环境变量 1.安装python: python下载地址https://www.python.org/,建议用2.7.x版本 2.设置环境变量: 方法如下所示 第二步 安装Robot framework 下载地址如下:https://pypi.python.org/pypi/robotframework/2.8.5 如果安装了pip工具,则可以直接使原创 2015-05-08 21:51:46 · 3936 阅读 · 0 评论 -
python中os.path下的方法
os.path下的方法如下: os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。 os.path.dirname(path) #返回文件路径 os.path.exists(pa...转载 2015-04-29 09:13:40 · 640 阅读 · 0 评论 -
selenium python对于select选择项的使用
html有一种下拉列表标签,名为select,其内每一项均为option标签,对于这类元素,必须先定位到select元素,而后才能定义到option元素,selenium为我们提供了一个Select类以供我们使用,如下:要使用此模块,需要用如下语句导入:from selenium.webdriver.support.select import Select使用示例如下:如下为一原创 2015-04-24 09:38:06 · 9015 阅读 · 0 评论 -
python深复制与浅复制区别
1. copy.copy() 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。2. copy.deepcopy() 深拷贝 拷贝对象及其子对象由于在python中对象之间赋值只是引用的传递,即多个对象指向同一个地址,如a=[1,2,3]b=a此时a与b是指向同一个内存地址的,即存储[1,2,3]的内存地址;那么如果对b进行改动,则势必会将a的值一并修改,那么此时就必须原创 2015-04-20 11:53:39 · 689 阅读 · 0 评论 -
selenium自动化测试中unittest断言的使用
由于selenium ide转化的脚本并未包含检查点,故我们使用unittest搭建selenium的自动化测试套件中可以使用unittest的断言来检查结果是否符合我们的要求:最常用的断言如下:1.相等断言:assertEqual(self, first, second, msg=None) 常用于title和url的对比来检查是否与预期结果一致; self.assertEqual原创 2015-04-20 11:09:04 · 6490 阅读 · 0 评论 -
使用python为ftp传输计时
由于公司一个项目,底层同步使用ftp同步,无任何流量和时间提示,但是测试需要知道文件传输时间,故使用python写如下脚本来实现此功能;方法为首先循环验证要同步的文件是否存在,而后在文件出现时打印一个时间而后循环计算文件大小,直到其大小为该文件本来大小后停止计时,并打印一个时间,而后计算出两个时间差,获得文件传输时间由于循环以s为单位,故存在一定误差,脚本如下:#-*- cod原创 2015-04-17 18:34:07 · 752 阅读 · 0 评论 -
关于Python报错:SyntaxError: Non-ASCII character '\xe5'的解决方法
问题出现原因: Python默认是以ASCII作为编码方式的,如果在自己的Python源码中包含了中文 等其他字符,就会报错,而在eclipse中编写python脚本,必然在开头自动加上了一些中文注释,故会有此错误。解决方法: 在在源码的第一行添加以下语句(建议使用第一种方式,更具通用性):# -*- coding: UTF-8 -*- 或者转载 2015-03-24 09:24:17 · 1095 阅读 · 0 评论 -
TypeError: unbound method a() must be called with A instance as first argument (got nothing instead)
错误如下:>>> class A: def a(self): print("I'm a")>>> A.a()Traceback (most recent call last): File "", line 1, in A.a()TypeError: unbound method a() must be called with A instan原创 2015-03-28 11:40:13 · 27468 阅读 · 1 评论 -
初学python之练习将输入的数字进行排序的方法
假如我要对输入的多位数字进行排序,那么首先使用raw_input函数,由于原创 2014-07-03 10:32:35 · 12849 阅读 · 1 评论 -
selenium实现模块化
在selenium的自动化脚本中,有许多东西是总是调用的,比如登陆,那么就可以将其模块化,独立出来,从而可以使自动化脚本更加简洁.如下以登陆为例来实现模块化:现有一个自动化脚本如下,为验证是否正常登陆的:test1.py# -*- coding: UTF-8 -*-'''Created on 2015年3月28日@author: dff'''from selenium原创 2015-04-08 11:15:05 · 2685 阅读 · 0 评论 -
selenium2+python模拟鼠标键盘操作类ActionChains的API
ActionChains类继承自object类,但是需要为其传入一个driver对象,即ActionChains(driver)此类常用于模拟鼠标键盘操作,其API列表如下:perform() 此方法执行储存的所有动作单击 click(self, on_element=None),此方法即为鼠标单击动作,输入参数为一个元素,可以不输入 用法:ActionChains(原创 2015-05-06 15:35:19 · 10605 阅读 · 0 评论 -
selenium2+python元素状态获取api
一些常用的元素状态获取api如下:1.tag_name 获取该元素的标签名称,需要先定位到该元素 用法:driver.find_element_by_id("cp").tag_name2.text 获取该元素的内容,需要先定位到该元素 用法:driver.find_element_by_id("cp").text3.click()原创 2015-05-06 14:29:53 · 1258 阅读 · 0 评论 -
【python学习笔记】set集合
1、集合说明集合(set)是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。2、创建一个集合大括号或 set()函数可以用来创建集合。注意:想要创建空集合,你必须使用 set()而不是 {}。后者用于创建空字典。创建...原创 2018-11-09 23:23:22 · 324 阅读 · 0 评论