- 博客(158)
- 资源 (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
2018
原创 pytest教程之代码运行方式
前言pytest用例除了常用的命令行运行方式外,还有另外一种运行方式,即为代码方式,通过pytest.main()来执行,即可抓取此main文件所在的目录和同级下所有目录里的用例;使用说明如果要使用命令行方式运行某些用例,则可以通过添加参数的方式来进行def main(args=None, plugins=None): """ return exit code, after per...
2019-06-06 15:43:35
1733
原创 pytest教程之基础使用
安装安装使用如下代码:pip install pytest用例pytest的用例都是以默认规则来的,总体来说就是如下几种:测试文件以test_开头(以_test结尾也可以),或者Test_测试类以Test开头,并且不能带有 init 方法测试函数以test_开头如下为一个测试工程,其中不符合上述规则的文件或者用例都不会被识别为用例:打开Terminal运行pytest -...
2019-06-06 14:57:33
1591
原创 pytest教程之命令行方式运行用例
前言用命令行方式调用用例是我们最常用的方式,这方面确实比java的TestNG框架要好用许多,至少不用写xml文件,为了提供定制化运行用例的方式,pytest提供了许多运行命令以供定制化运行某一类测试用例或者某个测试用例等;pycharm里命令行运行用例在pycharm里写好了测试用例后如何运行呢?pycharm里好像并没有像eclipse里提供TestNG用的插件一样可以一键执行的方式,那...
2019-06-06 14:12:15
15815
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
1376
原创 通过nose直接将allure报告作为一个可以远程连接的网站打开
前置服务器上安装了nose、allure和pytest用例;使用方法先用pytest和allure生成测试报告,而后使用allure open -h 127.0.0.1 -p 8083 ./report/将生成的html文件通过浏览器进行查看,report即为allure生成的报告所在的目录,而后即可通过"http://服务器ip:8083"来访问这个allure报告了;如下是用过的一个用...
2019-06-06 09:59:52
2304
原创 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
4343
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
3412
原创 jenkins自定义邮件发送Editable
此邮件插件不同于自带的email插件,可以自定义邮件模板,并做高级的定制,而jenkins自带的邮件则只会在构建失败后才发送邮件,且不能定制邮件内容;1、安装插件jenkins版本:2.73打开jenkins的插件管理,搜索插件Email Extension Template Plugin并安装;2、配置邮件新建一个job并在增加构建后步骤:选择Editable Email Not...
2019-06-05 17:13:54
3669
2
原创 jenkins多job执行
1、前言jenkins版本:2.73.3在持续集成中,会用到环境部署和自动化执行等,想要做成持续集成则需要将这几个工作顺序进行执行,当日也可以配置到一个job里,但是那样的话如果想要单独的运行某一个功能就会比较麻烦了,那么此时就可以用到多job,即将多个job放在一个job里运行。2、安装插件Multijob plugin在jenkins的插件管理中搜索插件Multijob plugin并...
2019-06-05 16:46:01
2514
原创 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
8058
3
原创 ansible传文件到远程copy和从远程机器拷贝文件fetch
这里主要用到两个功能,fetch和copy,其中copy是将文件拷贝到远程机器,二fetch是把文件从远程拷贝到本机,下面分别做说明(需要注意的是不支持文件夹的拷贝):前置条件使用ansible进行拷贝的前置条件是安装ansible的机器上要添加远程机器的地址,后边的范例中的all即为远程机器映射的地址1、将文件拷贝到远程机器标准写法:ansible all -m copy -a "src...
2019-06-03 10:00:19
29264
5
原创 jenkins参数化调用工程
在使用jenkins进行持续集成的时候,有时候运行脚本是有版本要求的,为了免于每次都要修改工程,可以将此部分作为参数进行传入,构建方法如下:1、配置参数jenkins版本:2.73.3在job中勾选如下图所示部分:名字:此为参数名称,请写英文默认值:参数的默认值2、调用参数设置好后就可以在构建的时候使用了;要调用此参数使用$paramname即可;譬如上面的例子调用时使用$env...
2019-05-30 18:03:59
1097
原创 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
2812
1
原创 java获取系统环境变量System.getenv()
java获取系统环境变量使用方法为System.getenv()(获取全部的环境信息),System.getenv(key)(获取某个环境信息);key的常用值如下表所示:键说明USERPROFILE用户目录USERDNSDOMAIN用户域PATHEXT可执行后缀JAVA_HOMEJava安装目录TEMP用户临时文件目录SystemD...
2019-05-23 17:55:51
26051
原创 java获取系统属性System.getProperty
获取系统参数使用方法System.getProperty(property);property为要获取的系统属性的key;系统属性key列表如下:键值java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.vendor.urlJava 供应商的 URLjava.homeJava 安装目录ja...
2019-05-23 17:44:22
535
原创 java获取当前jar包所在目录
原本获取工程目录使用方法System.getProperty("user.dir");但是打完包放在linux机器上跑的时候发现无法正确获取到该jar包所在目录,导致无法运行;网上查阅后修改为如下方法:public String getPath() { String path = this.getClass().getProtectionDomain().getCodeSource()...
2019-05-23 17:32:44
29602
3
原创 使用jenkins插件SSH plugin执行远程ssh
1、安装插件插件名称为SSH plugin,如下所示:2、增加一个凭证:(1)添加一个域(也可以使用已有的):此处域名可以随便写;(2)、添加凭证在上一步创建的域下添加一个凭证,类型选择Username with password下面的Username和Password即为要连接的linux服务器的登录账户和密码;3、添加remote host进入jenkins–>系...
2019-05-17 18:34:43
9545
原创 jenkins远程执行shell出现java: command not found
之前在使用jenkins执行远程shell脚本时,出现提示java: command not found;多方查找原因后发现是因为远程执行shell脚本时,不会自动加载环境变量,导致出现此错误,解决方案就是在脚本前加上这段代码即可source /etc/profile;...
2019-05-06 14:03:06
1999
原创 postgresql技巧之命令导出表(csv格式)
有时候我们需要导出某个表,但是又不能用Navicat等直接连接数据库,那么就可以使用COPY命令来导出表;一、登录postgresql其需要先在数据库服务器上切换账户并进入postgresql下[root@localhost ~]# su - postgresLast login: Sun Apr 28 18:11:32 CST 2019 on pts/0[postgres@localh...
2019-04-29 14:07:03
9908
2
原创 linux环境下python的virtualenv虚拟环境与使用
一、前言python的虚拟环境virtualenv是用于创建一个独立的python环境,带独立的库,和其他python环境完全独立互不影响,可以创建多个。需要在机器上先安装好一个python。二、创建virtualenv虚拟环境1、安装virtualenv使用pip安装virtualenv,命令如下:$ pip install virtualenv2、创建一个虚拟环境使用如下命令创...
2019-04-29 13:39:09
660
原创 shell常用时间戳的获取和转换时间
1、获取当前日期+时间要获取当前日期+时间,返回如1970-01-01 00:00:00则使用如下代码:currentTime =`date "+%Y-%m-%d %H:%M:%S"`输出2019-04-29 09:49:48也可以使用简写:currentTime =`date "+%F %T"`格式可以根据需要修改,如只获取日期:currentTime =`date "+%Y-...
2019-04-29 10:34:49
35814
3
原创 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
16558
5
原创 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
17606
2
原创 linux安装gcc
1、下载gcc源码此处可以使用地址wget http://gcc.skazkaforyou.com/releases/gcc-4.9.1/gcc-4.9.1.tar.gz或者wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gzgcc官网上可以看到版本:https://gcc.gnu.org/news.html2、解压:使用命令...
2019-04-18 19:57:32
2433
原创 postgresql备份和还原
1、备份使用命令pg_dump -h localhost -U user database > C:\name.baklocalhost为地址,如果在本机则使用localhost即可;user为数据库所属的账户;database为要备份的库;C:\name.bak为备份路径,如果为当前文件夹,则使用相对路径即可;2、还原数据库还原的话需要先创建一个新库,然后再还原;1)新...
2019-03-22 18:41:04
315
原创 postgresql数据库搜索和处理死锁
1、搜索死锁通过语句SELECT * FROM pg_stat_activity WHERE datname='databasename' and waiting='t';即可搜索出有死锁的进程,其中databasename为database的名称;出来的结果中datid即为此database的编号,pid即为死锁的进程号,此部分可以在数据库服务器上的进程中可以看到,通过ps -ef|grep...
2019-03-22 14:42:49
2367
原创 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
2541
原创 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
1177
原创 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
16176
1
原创 【问题记录】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
167793
16
原创 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
3249
1
原创 Postgre学习笔记:还原数据库
今天工作中用到postgre还原数据库的功能,故此记录一下,以免遗忘;1、登录postgre创建一个新库(1)、登录postgres先连接到数据库服务器而后输入su - postgres(注意中间的横杠两边都有空格);而后输入psql即可,此时界面应该会显示postgres=#,这时就已经进入了数据库了;(2)、创建新库输入命令CREATE DATABASE exampledb OWN...
2019-03-05 20:18:26
1083
原创 TestNG修改reportNG输出description
前言在使用reportNG来输出TestNG的报告的时候,出来的报告中method都是按照名称来列的,但是这样对于我们来说很不好看,最好是能够加点中文,那么就想到了可以使用其description属性来展示其中文说明,那就需要修改下源码了;修改源代码1、下载源码去reportNG的官网下载下来源码:https://reportng.uncommons.org/将其导入到eclipse中...
2019-03-01 11:24:10
2001
1
转载 ReportNG 报告中文处理
转载自https://blog.51cto.com/11565528/2082784一、说明 :当前ReportNG 最新是1.1.4版本,这个版本不支持中文报告,在testng.xml中,如果配置了有中文的项目名称等,在测试报告报告中会乱码二、原因解析:在1.1.4版本的包:reportng-1.1.4.jar中 ,有一个类:AbstractReporter中的generateFile方法...
2019-03-01 10:50:53
555
原创 【Jmeter】使用外部java代码进行任意时间的获取
前言:jmeter自带的time函数可以很好的完成当前时间的各种格式的获取,然而有时候我们需要获取过去的某个时间和将来的某个时间,那么使用jmeter自带的函数就不太好用了,此时就需要使用java代码来完成这一点,方法如下:1、书写java代码:书写一个DateUtil的java文件,如下:package com.lty.apiTest.common.util;import java....
2019-01-25 10:56:59
606
原创 Jmeter后置处理器之Json提取器详解
说明此提取器用于提取请求返回结果中的某个值或者某一组值,用法比正则表达式要简单,标准写法为$.key,其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可,如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号,如下使用实例来说明下如何使用;用法说明调试方法:在View Result Tree中选择JSON Path Teste...
2019-01-18 10:11:54
36569
5
原创 Jmeter函数助手之__time函数(获取当前时间)
在实际的接口用例测试中,有些接口是需要输入当前时间的,而且格式各异,那么有没有方法可以直接获取时间呢?有的,Jmeter提供了time函数来达成这一点,如下,打开函数助手,找到__time这个函数,可以看到该函数有两个参数,即格式和参数名称,两者都不是必填项,格式:非必填项,格式如果不填那么就是默认获取当前时间的毫秒数(此项也常被用于接口参数中那些不允许重复的字段);参数名称:非必填项,如果...
2019-01-17 10:30:28
29505
原创 Jmeter函数助手之__RandomDate的使用
Jmeter提供了能够获得随机日期的方法,如下所示:其函数参数含义:Format string for DateTimeFormatter (optional) (default yyyy-MM-dd):日期格式化方法,默认为yyyy-MM-dd;Start date (optional) (default: now):为开始日期,格式必须和日期格式化方法一致,如格式化方法不填,则此处格...
2019-01-15 10:47:15
7329
原创 Jmeter之Random随机函数使用
在使用Jmeter做接口测试用例时,有时接口的某个参数是有固定范围且不能重复的数字,譬如电话号码,name此时就需要用到这个函数来生成随机的数字了,方法如下:1、用法说明在JMeter 工具中,选择{选项-函数助手对话框-} 函数助手中选择 Random ,具体配置如下图所示:函数参数内三个名称的含义分别为最小值,最大值和生成的值得参数名称,填上之后点击生成按钮即生成${__Random(1...
2019-01-15 09:46:00
19155
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人