- 博客(112)
- 收藏
- 关注
原创 python接口自动化pytest+allure+github+jenkins之Linux环境部署操作笔记
这个部署过程是已安装好了Jenkins,若需要部署Jenkins请移步查看安装Jenkins相关部分准备过程:已在windows下写好的python+pytest+allure的接口自动化测试用例,上传到GitHub(此方法自行百度) 一台已包含了Jenkins的Linux虚拟机部署过程分解:在Linux上安装python和相关模块pytest,request,allure,yaml,configparser,模块版本需与windows兼容的版本。 在Linux上安装git和GitHu
2020-09-21 17:14:15
2205
原创 Jenkins 配置邮件通知和定时构建笔记
之前部署好了Jmeter+Ant+Jenkins,由Jmeter编写的自动化测试脚本是通过改变ant的配置来发送脚本运行情况的,而如果通过Jenkins时,还需要考虑Jenkins在构建时是否成功,因为有可能存在构建失败的情况,而原本Ant又跑成功的案例,为了更好的监控构建状态和脚本运行状态,需要在Jenkins自身也加入监控构建状态的邮件提醒。Jenkins配置邮件通知步骤一.安装...
2020-01-20 18:45:02
694
2
原创 Jmeter+Ant+Jenkins之Linux部署操作笔记
一、所需安装包网盘安装大礼包地址:链接:https://pan.baidu.com/s/1yYfvMW5cEyER5DuYqeIpjg 密码:kqwhjdk下载https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html(现在下载需要似乎需要登录比较麻烦,找对应linux...
2020-01-17 17:23:07
1959
1
原创 JMeter5.0 分布式操作部署笔记
当JMeter处理高并发,当一台机器调了JVM还不够测试时,就可以使用分布式的形式来进行分压,分布式简单的说就是由一台控制机去启动JMeter配置相关参数后,通过java的RMI(Remote Method Invocation)远程到其他机器(执行机)进行负载。当在处理高并发总是卡住的时候,可先尝试设置JVM(如果还没法解决,就搞个分布式)打开jmeter.bat 搜set hea...
2019-08-23 17:21:39
1083
原创 SonarQube7.6 代码质量管理工具安装&使用 笔记
最近公司需要QA来管理代码质量,于是就上网搜了一下,参考了N个博客,终于完成了扫描的操作,暂且不考量该Scanner对工作的贡献,至少可以让代码完全的跑起来,这也算对于研究了一天的自己一个安慰吧。接下来记录一下自己学习的过程:SonarQube是一个开源的代码质量检查工具,它支持20几种编程语言的代码质量管理与检测,提供了可视化的报告,可以快速的定位问题所在;一.安装本人电脑是WI...
2019-02-22 18:44:03
2708
原创 Jmeter5.0 抢红包并发操作案例
环境搭建 Java下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.htmlJMeter是基于java的开发的工具,因此需要使用JMeter必须要安装java。 JMeter下载地址:http://jmeter.apache.org/download_jmeter.cgi my...
2018-12-18 11:35:03
1820
原创 python+selenium切换弹框的iframe框架失败处理方法
加入一句:switch_to_default_content()例如 LOL官网点击登录后,需要切换账号密码登录页面: 参考一下代码:from selenium import webdriverfrom time import sleepbro = webdriver.Firefox()bro.maximize_window()sleep(1)bro.get("ht...
2018-11-29 17:16:46
1965
原创 python3 笔记20.类的调用和多重继承(多重继承MRO方法解析顺序)
python3 类的多重继承和 python2 的经典类相差比较远,需要使用到MRO方法解析顺序。要是顺序不对则无法正常继承。这里先简单了解。到以后有机会使用再深度学习# 类的调用也是遵循模块调用的两种方式多重继承:多个类间的互相继承# 多重继承的写法: class 类名(父类名,子类名)# 规则:相同方法名的方法以及框架都继承父类,若不同名的方法则可以完全同时继承# coding...
2018-10-19 10:05:52
423
原创 python3 笔记19.类的继承和重写、添加新方法
#该文件取名leijichenghechongxie.py 方便后续多重继承调用# 类继承和重写,子类继承父类若不修改重写内容,则默认父类所有的方法及属性框架# 子类继承父类写法:# class 子类名(父类名):# coding:utf-8class father(): # 父类 def __init__(self, name, age): self.nam...
2018-10-18 23:08:27
1004
原创 python3 笔记18.构建类class
# 类是面对对象语言中独有的。# 类:可以定义框架(类属性)和对应使用的方法# 根据类可以构建对象,构造出的对象将满足可以使用该类所有的方法,并且拥有所有的属性'''格式:class 类名: 类变量 = 0 #构建计数使用 (非必须) def __init__(self,属性1,属性2,...): #初始化参数,参数可以作用于全局(非必须) self....
2018-10-18 23:03:23
314
原创 python3 笔记17.调用模块from...import...
#该文件是演示被调用时存在的文件 文件名为iPhone.py 与调用文件在同一目录下def huawei(): print("huawei")def xiaomi(): print("xiaomi")if __name__=="__main__": #这句加在所有执行语句的前面,这样可以避免其他包调用的时候执行到该方法的语句 #注意加入了第7行这句的话,下面的执...
2018-10-18 23:02:17
568
原创 python3 笔记16.构建函数def
# 构建函数用def 关键字。# 构建函数有四种形式:# 1. 不传递任何参数# 2. 传递固定个数参数# 3. 缺省参数,默认参数,当不传入缺省参数的对应新参数时按照默认进行输出# 4. 不定个数参数,就是在对应参数前加*#例1:不传递任何参数def info(): #构建函数以def开头,info为函数名 print('my name is Tom') #构建函数的对...
2018-10-18 22:54:24
678
原创 python3 笔记15.通过range()函数来了解函数的作用
#函数就是一种运算法则、小程序,函数的作用是为了降低代码的复杂程序#假设之前我们学习时需要求1-100的和必须使用while循环(回顾)a = 0s = 0while a<100: a+=1 s+=aprint(s)# 而使用range()函数,再结合python内置函数sum()可以写成:print(sum(range(1,101))) #这样大大降低了代码...
2018-10-18 22:53:33
1109
原创 python3 笔记14.列表元组字典支持的函数
'''1.列表支持的函数1.1 append()函数:向列表追加元素(把元素添加到列表末尾)格式: 变量名.append(新元素) 注:新元素只能传一个1.2 insert() 函数:向列表插入元素(通过索引从指定位置插入)格式:变量名.insert(index,新元素)1.3 count() 函数: 返回某个值在列表中出现的次数格式:变量名.count(元素)1.4 s...
2018-10-18 22:52:08
313
原创 python3 笔记13.列表元组的切片和支持的运算方法
#列表、元组的切片方法同字符串 (元组只需把列表的中括号改为小括号即可)a = [1,23,173,3.14,'Jack','Jan',[1, 5, 3]]# 索引,下标:从左索引,从0开始, 从右索引,从-1开始代表倒数第一个。同字符串print(a[1]) #切取单个内容,输出下标索引为1的元素print(a[0:3]) #切取索引下标为0~3之间的元素不包括3的内容print(a...
2018-10-18 22:51:12
811
原创 python3 笔记12.字符串支持的函数
#1.upper(),lower(),capitalize()s = "helLoPyThoN"# 返回一个新的字符串print(s.upper()) # 全部字母大写格式print(s.lower()) # 全部字母小写格式print(s.capitalize()) # 首字母大写格式#2.find() 查找子字符串,返回子串的首字符索引s = "I love pytho...
2018-10-18 22:50:22
252
原创 python3 笔记11.字符串的切片和支持运算方法
#1.切片基于index索引下标进行截取字符串中的一部分或者全部,# Python的index从左到右是从0开始计算位数,从右到左是从-1开始计算。# 格式: 变量名[x:y:step]# 当只有一个值时,是y即边界值。# 当有两个值时,其中x是起始值,y为边界值。# 当有三个值时,step为不长a ='Hello'print(a[1]) #切取单个内容print(a[0:3])...
2018-10-18 22:49:22
400
原创 python3 笔记10.循环结构中的关键字(break,continue,pass)
# break,continue , pass 关键字在循环结构中的使用#while循环举例a = 1while a<10: a+=1 if a==7: break #当满足上述条件语句时,中断循环,直接终止while循环跳出 #continue #当满足以上条件时,跳过本次循环,执行下一轮的循环 #pass #占位符,...
2018-10-18 22:48:13
2332
原创 python3 笔记9.程序流程结构--循环结构(while,for)
#循环结构(2种) while for# 1. while循环:多次循环,当条件为真(True)时,则会运行循环语句,直到条件结果为假(False)时跳出循环。'''格式:while 条件语句: 循环体语句'''a = 1while a<10: a+=1# 防止while进入死循环,若不加入这句的话,a<10是永远成立的,就会循环打印1 prin...
2018-10-17 22:59:28
616
1
原创 python3 笔记8.程序流程结构(3种)--分支结构(if elif else)
#程序流程结构:# 1.顺序结构:即语句从上到下按顺序执行# 2.分支结构:常用if..elif..else判断语句# 3.循环结构:常用while循环或是for循环#2.分支结构:if条件语句,若满足对应条件则执行对应语句,执行完语句后结束进程。# 2.1 未分之前'''格式:if 条件语句: 对应语句'''if 1>2: #1>2为False,则if语...
2018-10-17 22:58:39
1505
原创 python3 笔记7.输入函数input()
#input()函数:# 格式: 变量名=input('请输入文字说明')# input()函数不论输入的内容为数字还是字符串都将被视为字符串类型 (和python2.x的raw_input有点类似)str = input("请输入你的名字:")print("你的名字叫%s" %str,type(str))#需要输入为整型或浮点型(必须转格式)# 格式 : 变量名=int(inp...
2018-10-17 22:58:02
1548
原创 python3 笔记6.运算符(5种)
#1.算数运算符(7个)# + - * / % // **# 从左到右依次是:加、减、乘、除、取余、取整、幂运算print("1+1=",1+1)print("2-1=",2-1)print("2*1=",2*1)print("2/2=",2/2) #当相同数字相除时会结果为浮点型,和python2.x不一样的地方print("10%3=",10%3)print...
2018-10-17 22:57:07
431
原创 python3 笔记5.打印集合
# python的语法要求严格,需要注意缩进问题。# 1.打印纯数字print(123)#2.打印字符串print('jack');print("tom");print('''jan''')#3.打印变量名a = 1print(a)#4.打印多个内容 用逗号隔开print(1,2,3,type(a))#5.为打印添加说明age=25print("my age is ",a...
2018-10-17 22:56:16
732
原创 python3 笔记4.变量类型--映射类型(字典)
#映射类型 : 字典(与Python2.x有点不一样,python2.x的字典键值一定需要引号引起来,除此外只要有新键产生打印时会键重排)# 1.字典(dictionary): 字典由两部分构成 key name(键名)与kye value(键值)# 字典的定义方式: 变量名 = {'键名1':'键值1',键名2:键值2.....} #键名为纯数字时可以不加引号dict = {'name'...
2018-10-17 22:54:37
825
原创 python3 笔记3.变量类型--序列类型(列表,元组)
#序列类型(2种):列表,元组# 1. 列表(list):有序数组,列表可以添加多个数据,添加字符串,数字,列表,元组,字典等。#列表的定义方式: 变量名 = ['value1',value2,[value3,value4],(value5,value6)]list = [1,2,[3,4],'你好',('sex',2),{'key1':1}]for l in list: pri...
2018-10-17 22:53:50
300
原创 python3 笔记2.变量类型(4种)-数值,字符串类型
#在学习变量类型之前引入一个查看类型的函数:#查看类型函数使用方式:print(type(变量名))#1.整型(int):整型用于代表数字中所有的整数,带符号(包括负整数)a = 12b = -2print(a,type(a));print(b,type(b))#2.浮点型(float)c = 3.14d = -3.14print(c,type(c),d,type(d))#3...
2018-10-17 22:53:05
234
原创 python3 笔记1.变量
'''变量:可变的量,区别于常量,常量为固定不可变的量变量的定义方式:变量名=value 例:a=1多个变量的命名格式:变量名1,变量名2=value1,value2 例:a,b=1,2删除变量名格式: del 变量名 删除后的变量名再也无法访问在定义变量名时尽量做到见名知意,例如:你定义一个变量为count,我大概就知道它表示统计总数变量名定义时注意事项:1. 变量名...
2018-10-17 22:51:17
240
原创 python3 笔记0.打印方法和注释
#打印时必须加上关键字print() 括号里填写打印内容# print("你好") #(在语句前加井号)是注释方法,也可以使用ctrl+?来实现快速注释print("hello world","什么对象")'''这是一段注释'''python3 安装和Pycharm环境部署请参考前面的python2 基础里的文档...
2018-10-17 22:45:23
475
原创 六.python 单元测试生成测试报告并发送到邮件
unittest单元测试不支持直接生成测试报告,因此测试报告都是通过第三方模块来进行导出。而第三方库导出的测试报告呈现以HTML形式,而第三方模块名称为 HTMLTestRunner下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html1.图下选择红框里的HTMLTestRunner.py,打开后把网页另存为即可下载。2.下...
2018-09-26 23:21:51
770
原创 五. python 单元测试封装discover加载测试用例方法
把用例和这个封装的方法都放在一个工作目录下。封装一个discover方法可以直接在这个方法写执行所有匹配的测试用例。#coding:utf-8import unittestimport osdef Run_all_test(): #实例化覆盖对象,匹配test*.py的文件 case_dir = os.path.join(os.path.dirname(os.pa...
2018-09-22 16:46:53
828
原创 四十六.python os模块(部分)
以下os模块只是在运行时学习所遇到,非全部。请见以下代码:#coding:utf-8import osos.chdir("/Users/THINK") #改变工作目录a = os.getcwd() #获取当前工作目录print ab = os.path.realpath(__file__) #获取当前文件的绝对路径print bc = os.path.dirname(o...
2018-09-22 16:09:25
343
原创 四.python 单元测试批量运行测试用例
在单元测试中批量运行测试用例的方法有两种。第一种是通过手动添加,通过unittest.Testsuite来管理用例集,通过addTest添加用例方法,再通过实例化TextTestrunner运行测试。第二种是通过自动识别用例的目录对所有的用例进行运行。使用到discover()函数。 首先来演示第一种手动添加写法:创建一个test_air.py其中导入的baidu_search...
2018-09-22 16:03:02
1996
原创 三.python 单元测试跳过执行某个测试用例的方法
方法一共有4种:以上截图为内置代码。其中前三种的用法都是通过@装饰器来实现。在函数前加了以下语法,则此函数则会跳过不执行第一个语法: @unittest.skip(reason) 有一个参数,填写跳过的原因。。第二个语法: @unittest.skipIf(condition,reason) 有两个参数,condition表示状态,reason表示原因。第三个语...
2018-09-19 14:57:35
3502
原创 二.python 单元测试setUp()和tearDown()应用
setUp:表示前置条件,它在每一个用例执行之前必须会执行一次 setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对应测试地址,这一些属于前置条件。tearDown:表示释放资源,它在每次用例执行完之后会执行一次tearDown可以理解为我们测试完毕后,需要关闭浏览器。以下示例演示setUp和tearDown的执行顺序:#coding:utf-8import ...
2018-09-19 10:11:16
4877
2
原创 四十五.python中的内置装饰器@staticmethod/@classmethod/@property
内置装饰器的存在是方便在类里自定义的一个函数方法。其中前两者@staticmethod和@classmethod它们使用时会有自己参数。而调用的时候也和普通函数方法不一样,类一般调用函数方法时是需要用实例化对象去调用,而通过内置装饰器,可以不需要实例化对象而直接去调用函数。而后者@property则是在调用函数方法时去掉了括号@staticmethod和@classmethod调用的函数方...
2018-09-17 23:15:35
321
原创 一.python unittest单元测试简介
unittest是python自带的一个测试框架,也称单元测试。使用时必须导入unittest模块。以下是unittest自带的一个例子,是从原模块copy出来的例子【crtl+鼠标左击 对着import后面的unittest 点一下即可跳到原模块查看介绍。】#coding:utf-8 import unittest #导入unittest模块class IntegerAr...
2018-09-17 17:24:08
506
原创 四十一.python中的匿名函数,高阶函数map/reduce/filter
什么是高阶函数?高阶函数是指可以把函数以参数形式去传递的一种函数。以下就是一个高阶函数的例子: 把函数作为参数的形式存在。def add(x,y,f): return f(x)+f(y)print add(-2,3,abs)#这时候abs直接赋值给了f参数,而abs本身就是一个函数匿名函数:一般return只有一个表达式的函数可以通过匿名函数来完成。匿名函数顾名思义,...
2018-09-13 16:43:22
304
原创 四十四.python装饰器@方法的使用
使用装饰器的目的是为了减少代码的修改量以及提高代码的可读性和可维护性。先来看一个基本的函数定义:#python2.7def add(x,y): return "%d+%d=%d" %(x,y,x+y)def sub(a,b): return "%d-%d=%d" %(a,b,a-b)print add(2,1)print sub(2,1)打印结果为:...
2018-09-12 23:29:37
201
原创 四十三.python 封装邮件发送附件(文本)内容
取名 Send_email.py 代码如下:#coding:utf-8import smtplibfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartimport osdef send_email(): smtpserver = "smtp.163.com...
2018-09-10 22:48:19
1375
原创 四十二.构建函数中非关键字与关键字参数
其中*args 表示非关键字参数,用于元组。**kwargs表示关键字参数,用于字典。def foo(*args,**kwargs): print 'args=',args print 'kwargs=',kwargs# foo(1,2,3,4)# foo(1,2,3,4,a=5,b=3)# foo(a=1,b=2,c=3)foo('a',1,None,c=2,...
2018-09-10 22:41:51
213
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人