自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 应用fiddler,使用har2case 将api参数转成yaml格式

当使用yaml文件管理接口参数时,参数量较多时,如果手动输入简直不要太崩溃……总结了如下方法:使用fiddler导出.har文件,使用大拿写的har2case工具,轻松将参数转成yaml或者json一、 下载并安装har2case1. 访问https://github.com/HttpRunner/har2case并下载 har2case2. 安装(前提安装python,pi...

2019-06-13 12:58:10 4633

原创 Appium 运行脚本报错InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported for

现象:Appium运行脚本报错InvalidSelectorException: Message: Locator Strategy 'css selector' is not supported for this session,但是脚本里使用的定位元素方法为find_element_by_id()原因:根本原因1:电脑里安装的selenium版本和Appium-Python-Clien...

2019-01-23 12:48:17 4925

原创 Selenium上传文件

Selenium上传分为input标签和非input标签,分别介绍总结下:一、input标签 input标签可以直接使用send_keys(文件地址)上传文件示例:el = driver.find_element_by_id('fileid')el.send_keys(r"F:\Python\testcase.txt")二、 非input标签(如a标签,div标签,butt...

2019-01-15 19:20:53 6902 1

原创 Selenium原理

 

2019-01-08 19:16:49 1091

原创 python深拷贝和浅拷贝理解

1. 理解名词可变对象:列表、字典、集合不可变对象:数字、字符串、元组拷贝:复制一个新的对象,新增一块内存空间引用:不会新增对象,不会开辟新的内存空间,只是多了一个引用2. 对【不可变对象】进行拷贝,是新增一个对象,即另辟一块内存空间,内存地址不同,一个改变互不影响。 本文总结是对【可变对象】的拷贝。2.1. 赋值 listA = [1,2,3,['a','...

2018-12-12 19:30:37 288

转载 【转载】HTMLTestRunner修改Python3的版本

今天一直用的测试用例报告模板不能用了,经过一翻修改也不行,从网上转载别人的可用。 http://www.bubuko.com/infodetail-529431.html在拜读虫师大神的Selenium2+Python2.7时,发现生成HTMLTestRunner的测试报告使用的HTMLTestRunner的模块是用的Python2的语法。而我本人比较习惯与Python3。而且自己也是...

2018-12-03 11:15:32 258

原创 python 反转字符串

例如:s = "abcdef",要求反转输出"fedcba"方法1:字符串切片: s[::-1]方法2:将字符串s转成列表 ,利用列表的.reverse()反转函数解决ls = list(s)ls.reverse()print(''.join(ls))方法3:将字符串转成列表,循环将列表一个一个出栈pop(),再将他们追加进栈到另一个列表.append()l...

2018-11-16 18:57:00 622

原创 python join() 和split()函数总结

最近对join()和split()函数总是不是特别清楚,抽时间总结1.join()函数语法:'sep'.join(seq)sep:分隔符即用什么符号连接如, % *随意,可以为空seq:要连接的对象是啥,可以为列表,字符串,元组,字典(字典只将key连接)函数作用:将seq的列表或字符串或元组或字典连接成一个字符串,返回值类型为字符串str实战:if __name__...

2018-11-15 19:42:11 1593

原创 包含标点英文语句拆分成列表 题(笨方法解决)

题目:分析:python提供split()函数将字符串拆分成列表,但是此题中有标点,而且标点2侧无空格方法1:用了最笨的方法,先将符号踢除,再转if __name__ == '__main__': s = "I am a chinese boy,but she is a japanese girl,she is russia girl.please tell me tha...

2018-11-14 20:41:08 1732

原创 OS操作文件或目录例子

1. 列出当前目录下的所有文件夹[x for x in os.listdir('.') if os.path.isdir(x)]2.列出当前目录下的所有文件[x for x in os.listdir('.') if os.path.isfile(x)3. 列出当前目录下所有python文件[x for x in os.listdir('.') if os.path.isfil...

2018-11-08 15:23:44 233

原创 操作文件和目录--常用(持续补充)

一、常用命令名称 参数含义 作用 支持系统 os.name ~ 返回操作系统类型 windwo,unix,linux,Mac os.uname() ~ 返回详情的系统信息 unix,linux,Mac os.environ ~ 返回系统中定义的环境变量 windwo,unix,linux,Mac os.en...

2018-11-08 15:22:38 125

原创 python面试题 有两个文件,每个都有很多行ip地址,求出两个文件中相同的ip地址

思路:1. 分别读取2个文件的内容返回list 2. 2个文件的内容即2个list取重复数据#读取文件内容,返回listdef get_content_for_file(filepath): if isinstance(filepath,str): with open(filepath, 'r') as f: content_list =...

2018-11-07 18:21:20 985

原创 python 读写文件操作

一、文件打开模式  打开方式 指针位置 读取的文件类型 r 只读(默认模式) 指针在文件开头,文件不存在则报错 1. 默认读取文件都是ASCII编码的文本文件 2. 如果读取的文件是二进制文件,如图片,视频需要使用'rb'模式 3. 读取非ASCII编码的文本文件,必须 以二进制模式打开,再解码 f=open('E:/test.txt'...

2018-11-07 14:16:59 24515

转载 利用Fiddler进行模拟限速测试

测试过程中需要模拟多种用户网络场景,但是公司网速嗖嗖的[拉仇恨了吗?O(∩_∩)O哈哈~],除了使用Netlimiter软件限制PC网速外,Fiddler能破么?能破么? 当然能!Fiddler是一个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里面自定义一些逻辑。Fiddler的模拟限速就是在客户端请求前来定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间...

2018-10-26 11:18:09 1201

原创 python webdriver API

一、浏览器的操作1. 浏览器最大化显示: driver.maximize_window()2. 设置浏览器的宽、高:driver.set_window_size(480,800)3. 控制浏览器的前进、后退:    前进:driver.forward()     后退:driver.back()4. 获得页面的title: driver.title5. 获取当前加载页面...

2018-10-19 14:17:19 248

原创 python time模块和datetime模块 总结

time模块:1. time.time()   #获取当前时间戳当前时间戳为: 1539691553.55744272. time.localtime(time.time())  #获取当前时间--时间元组本地时间为 : time.struct_time(tm_year=2018, tm_mon=10, tm_mday=16, tm_hour=20, tm_min=6, tm_...

2018-10-16 20:27:32 210

原创 常见bug总结

常见bug总结:1.网络交慢或者弱网状态下,新增某个功能时,快速2次点击提交按钮,会造成数据的重复提交  解决方法:点击提交后,将按钮变为disable状态,禁止用户再次点2.删除不存在的id,报错或者 崩溃  解决方法:后端异常处理3.输入特殊字符问题  例如:新增时包含特殊字符“,但是打开时显示不出来(写入与读出处理不一致)  例如:搜索框输入特殊字符,点击搜索直接崩溃...

2018-10-15 14:35:59 6015

原创 软件测试常见风险

1.需求风险a. 需求变更:需求变更导致开发、测试部分工作失效,维护成本增加2. 缺陷风险a.偶现缺陷,较难重现,容易被遗漏;b.缺陷跟踪不够积极主动,没有做好缺陷记录和跟踪,导致上线遗漏3. 代码质量风险a.人员经验不够丰富b. 人员对业务理解不够c.系统架构设计不足,导致扩展性不足,性能兼容差等问题4. 测试环境风险测试环境同线上环境配置并别较大,测试环...

2018-09-05 19:39:00 9148

转载 测试计划-方案模板

1 引言 1.1 编写目的 1.2 预期读者 1.3 参考资料   2 测试范围 来源于需求文档 具体业务,web端,移动 端? 3 测试目的 XX产品于xx日按质量要求上线   4 测试策略 2.1 功能测试策略 2.2 系统兼容性测试 2.3 性能测试 测试类型,测试场景,测试方法、策略...

2018-09-05 15:29:16 4722

原创 python——方法重写 和 调用父类方法

一、 方法重写当父类中的方法不符合我们的需求时,可以通过重写,实现我们的需求方法重写后,默认调用子类的方法1. 方法重写class Foo(object): def __init__(self): self.name = 'Foo' def hi(self): print('hi,Foo')class Foo2(Foo): ...

2018-09-05 14:23:54 4820

原创 python实例变量-静态方法-类方法

一、 初谈class A(object): hobby = 'reading' #类变量,类属性为所有实例共享,实例可以访问类变量 def __init__(self,name): # 初始化函数 self.name = name #实例变量,每一个实例独有 self.name = name #实例变量,每一个实例独有 ...

2018-09-04 17:24:31 370

原创 session 和 cookie区别

一、首先为什么会有session和cookie?http是一种无状态的协议,无状态指可以理解为打开网站的每一个页面都是需要登录的,这样的话用户不得疯了。所以Session和Cookie就是为解决这个问题而提出来的两个机制二、Session和Cookie介绍Cookie,Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。包括...

2018-09-03 14:47:59 146

原创 接口测试常见bug

一、接口参数数据类型:1. 数值型2. 字符串类型3. 数组或者 链表类型4. 结构体二、接口测试常见bug:1. 特殊值处理不当导致程序异常退出或者崩溃2. 类型边界溢出,导致数据读出和写入不一致3. 取值边界外值未返回正确的错误信息4. 参数 为null或空字符串“”等5. 权限未处理,可以访问其他用户的信息例如:无权限可以访问,或者 一般用户可以访...

2018-08-31 15:58:39 27340 1

原创 接口测试设计用例总结

接口测试设计用例总结:    

2018-08-31 15:34:47 295

原创 Http状态码

任何一个请求发送后http本身都会有一个响应码,来标识此请求是否成功常见状态码:1. 200 2开头表示请求发送成功2. 300 3开头表示重定向,最常见的是302,将请求重定向到别的地方了3. 400 400表示请求有语法错误,401表示页面没有授权,403表示没有权限访问,404代表没有这个页面4. 500 5开头表示服务器异常,500代表服务器内部内部异常,504代表服务...

2018-08-31 15:29:44 114

原创 Http:get和post请求的区别

Http:get和post请求的区别1. get 参数一般在 url里或者 cookie里, post参数在body中2. get的url会有长度上的限制(最大长度2048个字符),post的数据则可以非常大3. post比get 更为安全,因为数据在地址栏上不可见(但是抓包可见)4. 一般get请求用来获取数据,post请求用于发送数据5. get请求可被缓存,post请求不...

2018-08-31 15:19:45 187

原创 parameterized参数化--针对入参个数相同,结果个数相同,内容不同,例如登录接口

场景:针对入参个数相同,结果个数相同,内容不同的case,可以直接参数化使用,不用多个方法(冗余)前提:安装 nose-parameterized模块例1:from parameterized import parameterizedimport unittestclass TestAdd(unittest.TestCase): @parameterized.expa...

2018-08-16 14:29:26 2754

原创 常识:快速验证 “自己写的元素定位方式\路径” 是否能定位成功

方法1:场景:之前写出元素定位方式 和 路径 后,只有运行代码才能知道此定位方式及路径 是否正确,是否能定位成功,很耗时很耗时……解决方法(从前辈那学习的方法):利用谷歌浏览器自带功能 验证 自己写的元素定位路径 是否能唯一识别元素步骤1:f12 打开 "developer tools"步骤2:control +f    打开查找元素 搜索框(在浏览器底部),输入路径后,定...

2018-08-01 19:20:56 762 1

原创 定位一组对象 例如checkbox

定位一组对象:一、场景:1. 批量勾选页面所有checkbox2. 先获取一组对象,再从这组对象中过滤中符合条件的对象 ,例如勾选符合某个属性的checkbox,或者 选择最后一个二、例子:目标1:选中checkbox【公司整改通知单】#选择页面上所有的tab name为input且type为checkbox的元素checkboxes = driver.find...

2018-07-25 12:56:15 2207

原创 Python strip()方法学习

描述: strip()方法用于去除字符串头尾指定的字符(默认为空格或者 换行)语法:str.strip([chars])参数chars 是指定字符返回值:去除字符口串头尾指定的字符chars 生成的新字符串e.g去除‘0’: str = 0012345000      print(str.strip('0'))结果: ‘12345’e.g去除空格: str= '      study  up   ...

2018-06-07 12:19:56 1456

原创 python基础(笔记)

1. python语言特点(不能写操作系统):高级程序语言,代码量少,执行速度慢,不能加密,跨平台python解释器:CPython(最广泛),IPython,PyPy,Jython,IronPython命令行模式(一行一行解释执行)和交互模式(一次性执行源代码)2. 输入和输出print('one','two','three'), 有逗号,会输出一个空格name = input('please ...

2018-06-07 11:34:30 192

原创 CssSelector常用定位方式总结

CSS选择器的常见语法:1.  根据 标签定位 tagName(定位的是一组,多个元素)e.g:find_element_by_cssSelector("div")2. 根据 id属性定位(注意id使用#表示)e.g: find_element_by_cssSelector("#eleid")e.g: find_element_by_cssSelector("div#ele...

2018-05-31 11:03:23 55130 4

原创 python读取EXCEL xlrd 模块

1. 安装xlrd方法:通过pip  或者 pycharm IDE2. 使用2.1 打开Excel表导入模块:import xlrd打开工作簿:book = xlrd.open_workbook('file.xls')获取工作表3种方法:sheet = book.sheet()[0]  #通过索引顺序获取工作表sheet = book.sheet_by_index(0)  #通过索引顺序获取工作表...

2018-05-29 15:00:11 567

原创 Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

访问https请求时,报出SSl认证失败:(Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)'),)解决方法:1. 忽略ssl认证请求语句 中加上参数verify=False2. 安装证书certifi 或者更新requests包(此方法没试...

2018-05-29 10:09:02 28022 1

原创 pip3安装 MySQLdb失败,提示No matching distribution found for MySQLdb

接口测试过程中需要连接数据库进行操作,所以要安装连接mysql的接口模块pip3 install MySQLdb,提示失败用了网上的其他方法都无法解决。最后解决方法:python2 对应的模块是 MySQLdbpython3对应的模块是pymysql明白了。。。。。。...

2018-05-17 09:21:44 25264 1

原创 获取当前路径和根目录

今天用到了获取当前路径 和 根目录,记录总结下:1. 获取当前脚本的路径(包含文件名称)-绝对路径 a. os.path.abspath(__file__))    print(os.path.abspath(__file__))b. os.path.realpath(__file__)   print(os.path.realpath(__file__))结果:2. 获取当前脚本所在目录(不包含...

2018-05-15 10:58:21 12892

原创 元素定位失败总结

试用了所有定位方法,定位方法应该没有问题,但测试运行时就是提示找不到元素,总结原因:1. 目标元素还没有加载出来,但代码已经执行到目标元素定位操作解决方法:在定位元素前加一个等待时间例如:sleep(4)2. 需要切换iframe去定位元素, 解决方法:目标元素是在打开一个页面或者切换到一个iframe中时,代码需要先转到正确的iframe中,再宣位元素切换ifram方法请...

2018-05-14 11:33:11 932 3

原创 元素定位方式Xpath总结

一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写。例子: find_element_by_xpath("/html/body/div[2]/form/span/input") #div[2]指第2个元素二.相对路径(建议使用)方法:首先找目录元素是否有”精准元素“即唯一能标识的属性,找到,则用此属性定位;1. 通过元素本身的唯一属性定位  ...

2018-05-14 11:09:19 43012

空空如也

空空如也

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

TA关注的人

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