自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 模块的总结

测试计划包含的大概内容有: 测试背景,测试策略,测试范围,测试目的, 人员的安排,时间的分配,测试的环境情况,风险评估等。风险大概有: 测试人员对业务流程的不熟悉,时间紧任务重,软件硬件网络出现故障, 人员的变更,测试资源未及时到位等测试用例用例模板(示例为我们公司的模板): 用例编号,前置条件,所属模块,用例标题,优先级,操作步骤,输入数据,预期结果,实际结果接口测试用例模板(示例为我们公司的模板): 用例编号,所属模块,接口描述,接口

2021-11-06 21:32:10 318

原创 Shell脚本

Shell介绍Shell 和python都是弱语言 定义变量规则 : 变量名=值 shell定义变量的规则: 1:等号两边不能有空格 2:定义特殊的变量需要用单引号或者双引号结合 3:定义linux命令需要用反单引号 区分单引号和双引号的不同和相同点 双引号中有$变量名的话,输出的是变量名对应的变量值 单引号中有$变量名的话,输出的是$变量名

2021-11-04 17:42:17 240

原创 RF 高级API 和 RF+jenkins持续集成

API高级1:窗口跳转案例:58租房:http://bj.58.com业务场景: 1.登录58同城 2.点击租房 3.选择区域 4.选择租金 5.进行筛选Get Window Handles:获取窗口的句柄 Select Window By Handle:切换到新窗口注意:跳转窗口需要Select Window By Handle关键字,但是类库中没有对应的关键字,需要我们进行如 下操作1:在D:\install\python\pyt

2021-11-03 19:02:10 409

原创 RF 基础API

环境 1:通过pip安装扩展库:pip install robotframework-seleniumlibrary2:下载谷歌游览器和对应驱动https://www.cnblogs.com/loved-wangwei/p/8993013.html3:将游览器驱动放在python的目录下比如: 我的python安装在D:\install\python\python目录中 (chromedriver.exe放入对应的python 目录下)4:导入S

2021-11-02 17:45:30 358

原创 Robot Framework 的基础操作

Robot Framework的简介和特点RF是一个基于Python语言开发的,可扩展的,是以关键字驱动模式的自动化测试框架RF最新的版本是2019 年7月份发布,7月份之前只支持python2.7,7月之后支持3.X的版本关键字驱动和数据驱动的区别关键字驱动:把项目中的一些逻辑封装成关键字(一个函数名),login,register,调用不同的关键字组合实现不同的业务逻辑,从而驱动测试用例执行。数据驱动:把测试用例里面的数据提取到excel或者yaml文件里面,然后通过改变e

2021-11-01 19:09:22 437

原创 app端自动化POM

POM及POM设计原理POM(page object model)页面对象模型,主要应用于UI自动化测试框架的搭建,主流设计模式之一,页面对象模型:结合面向对象编程思路:把项目的每个页面当做一个对象进行编程POM一般分为四层第一层:basepage层:描述每个页面相同的属性及行为第二层:pageobject层(每个的独有特征及独有的行为)第三层:testcase层(用例层,描述项目业务流程) 第四层:testdata(数据层)代码实现 非po模型(模拟器中qq登..

2021-10-30 00:59:34 1942 1

原创 App基础操作API

手机控件查看工具uiautomatorviewer工具简介用来扫描和分析Android应用程序的UI控件的工具.如何使用 1.进入SDK目录下的tools目录,打开uiautomatorviewer 2.电脑连接真机或打开android模拟器 3.启动待测试app 4.点击uiautomatorviewer的左上角Device Screenshot,会生成app当前页面的UI控件截图 5.选择截图上需要查看的控件,即可浏览该控件的id,class,text,坐标等信

2021-10-28 18:12:45 4798 13

原创 Appium 入门

Appium1.支持语言:Java,C#,Python,php,perl,ruby,Node.js2.支持Android和iOS系统3.支持跨应用Appium背景介绍1.官网:www.appium.io,由SauceLab公司开发2.Appium是由nodejs的express框架写的Http Server,Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架Appium入

2021-10-27 17:04:06 1714 2

原创 App云测试平台

1:在游览器中输入:云测平台2:如上图显示,点击Testin云测试3:点击”注册”按钮,如下图显示,输入手机号,验证码以及密码,勾选同意,点击”立刻注册”按钮4:点击左侧菜单栏中的”标准兼容测试”按钮5:点击开始测试6:点击上传应用7:指定apk8:上传完毕后点击企业测试随机50个机型,我选择是的第一个,有三个选项,自行选择即可9:如下图显示测试结果点击下载报告后,会下载excel表格...

2021-10-26 20:58:12 477

原创 Monkey 测试

Money介绍 顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂,只知道乱敲通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常 Monkey用来做什么Monkey 主要用于Android的稳定性测试,自动的一个压力测试小工具, 主要目的就是为了测试app 是否会 Crash(崩溃)Monkey程序介绍 (1) Monk

2021-10-26 20:22:32 238

原创 ADB 常用指令

介绍手机测试对于手机端测试,按照平台来分,分为Android和IOS两大主流系统, 对于ios和Android,二者有区别,我就说一下我在测试这两款手机app的感受吧 1、两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。 2、两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有 内存才会关闭。 3、IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。 Android开源导致碎片化比较严重,(手机品牌众多

2021-10-25 17:18:37 293

原创 PO模型介绍和案例

PO模型介绍在自动化中,Selenium自动化测试中有一个名字经常被提及PageObject(思想与面向对象的特征相 同),通常PO模型可以大大提高测试用例的维护效率优点:重用,业务和对象分离,代码结构清晰,方便代码维护PageObject设计模式PO的核心要素1.在PO模式中抽离封装集成一个BasePage类,该基类应该拥有一个只实现webdriver实例的属性2.每一个page都继承BasePage,通过driver来管理...

2021-10-22 20:13:03 236

原创 Selenium API高级

弹出框操作1) 进入到弹出框中driver.switch_to.alert2) 接收警告accept()3) 解散警告dismiss()4) 发送文本到警告框send_keys(data)鼠标和键盘操作手动测试时键盘的操作在selenium页有实现,关于鼠标的操...

2021-10-19 17:18:44 256

原创 Selenium API基础进阶

元素的定位1)元素定位方法的分类(调用方式):1.直接调用型(推荐方式)driver.find_element_by_xxx(value)2.使用By类型(需要导入By)from selenium.webdriver.common.by import Bydriv...

2021-10-18 19:32:14 109

原创 Selenium API基础

selenium环境搭建1.材料:1)python3.72)Firefox35(大于43)3)selenium2框架 稳定版 2.48.0 (pip install selenium==2.48.0)4)浏览器驱动 chrome ieSelenium IDESelenium的IDE(集成开发环境)是...

2021-10-15 19:15:15 265 2

原创 xpath---元素定位

1.为什么要学习元素定位?1)计算机没有智能到人的程度。2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。3)计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)2.元素定位的工具或手段有哪些?1)css选择器2)xpath环境及工具1)firefox352)firebug插件3)firepath插件安装步...

2021-10-14 17:11:52 153

原创 Jenkins定时任务

Tomcat的安装与环境变量配置1.解压tomcat文件夹环境变量的配置1.新建CATALINA_HOME变量2.将tomcat中的bin添加到path中开启tomcat的方式有两种方式1:在dos窗口输入startup方式2:在找到Tomcat的安装目录下的bin文件,点击startup.bat即可(window环境)关闭服务,点击shutdown.bat配置Jenkins,构建持续集成1:将下面的jenkins.war包放在tomcat对应的w...

2021-10-13 15:45:35 333

原创 搭建JMeter+Jenkins+Ant持续集成

配置ant1:打开test文件夹,找到test中的ant文件夹下的如下路径2:配置环境变量在环境变量中系统变量新增ANT_HOME:为 ant解压位置CLASSPATH为 %ANT_HOME%\lib;PATH为%ANT_HOME%\bin3:验证ant是否安装成功,如下显示的为成功4:配置库文件将jmeter extras目录下的ant-jmeter-1.1.1.jar文件拷贝到ant安装目录下的lib文件夹中5:配置ant的编译文件build.xml...

2021-10-12 17:19:24 142

原创 Python---requests接口测试

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到, Requests是Python语言的第三方的库,专门用于发送HTTP请求 需要安装pip install requests get的请求 get传参的第一种方式get传参的第二种方式 post请求 Requests响应r.status_code 响应状态码 r.heards 响应头 r.cookies 响应cookies r.text 响...

2021-10-11 17:29:49 196

原创 allure练习

通过读取csv/xml数据并且结合使用allure展示测试报告,验证开发中的add()和reduct()操作 (在@allure.story分别实现相加减)csv加减xml加减

2021-10-10 23:44:25 104

原创 Python单元测试---pytest

需要安装pytest和pytest-html(生成html测试报告)pip install pytest 和 pip install pytest-html 命名规则Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,比unittest 更加严谨 Pytest:setup, setup_class和teardown, teardown_class函数(和unittest执行效果一样) 运行于测试方法的始末,即:运行一次测试函数会运行

2021-10-10 23:11:46 210

原创 Python单元测试---unittest

单元测试 颗粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”;是指对软件中的最小可测试单元进行检查和验证。Unittest重要组成unittest中最核心的部分是:TestFixture、TestCase、TestSuite、TestRunner TestFixture主要方法: setUp():准备环境,执行每个测试用例的前置条件; tearDown():环境还原,执行每个测试用例的后置条件; setUpClass():必须使用@cla

2021-10-10 17:57:07 161

原创 Python面向对象---私有权限

封装的意义:将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;对类的属性和方法增加访问权限控制。私有权限:在属性名和方法名 前面 加上两个下划线 __类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问;类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问;私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。内部调用私有属性和私有方法子类.

2021-10-07 20:26:52 238

原创 Python面向对象---继承

单继承单继承:子类只继承一个父类子类在继承的时候,在定义类时,小括号()中为父类的名字父类的属性、方法,会被继承给子类多继承多继承:子类继承多个父类多继承可以继承多个父类,也继承了所有父类的属性和方法如果多个父类中有同名的 属性和方法,则默认使用第一个父类的属性和方法(根据类的魔法属性mro的顺序来查找)多个父类中,不重名的属性和方法,不会有任何影响。子类重写父类的同名属性和方法子类调用父类同名属性和方法不推荐这样访问父类的属性,相当于创建了一个新的父类对象...

2021-10-07 16:20:13 63

原创 Python中的类和对象

类(Class) 由3个部分构成01). 类的名称:类名02). 类的属性:一组数据03). 类的方法:允许对进行操作的方法 (行为)添加和获取对象的属性在方法内通过self获取对象属性创建对象后再去添加属性有点不合适我们可以使用 魔法方法__init__有参数的__init__()方法通过一个类,可以创建多个对象,就好比 通过一个模具创建多个实体一样1). 在类内部获取 属性 和 实例方法,通过self获取;2). 在类外部获取 属性 和 实例方法...

2021-10-06 17:20:56 103

原创 10.5 习题两套

2021-10-06 08:37:04 110

原创 10.4 习题两套

2021-10-06 08:35:22 69

原创 10.1数据库练习

2021-10-03 19:02:09 108

原创 9.30缺陷报告记录

2021-10-02 19:59:08 91

原创 9.29微信的思维导图

2021-10-02 19:55:19 156

原创 python的异常处理,模块,包

异常异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 一般情况下,在Python无法正常处理程序时就会发生一个异常。 异常是Python对象,表示一个错误。 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。异常处理以下为简单的try....except...else的语法使用except而不带任何异常类型 以上方式try-except语句捕获所有发生的异常。但这不是一个很好的方式,我们不能通过该程序识别 出具体的异常信息..

2021-09-28 15:34:35 89

原创 Python的文件操作

使用文件的目的:保存数据存放在磁盘把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力打开文件在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件写数据我们执行查看结果继续写入数据 那么可以得出结论:如果文件不存在那么创建,如果存在那么就先清空,然后写入数据读数据(read)我们读取不存在的文件看结果由此可以得到:如果用open打开文件时,如果使用的"r",那么可以省略如果没有文件,打开报错...

2021-09-27 11:37:21 79

原创 Python--基础函数

在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块 组织为一个小模块,这就是函数 格式 函数参数如果为了让一个函数更通用,即想让它计算哪两个数的和,就让它计算哪两个数的和,在定义函数 的时候可以让函数接收数据,使用:参数传递 位置参数 定义时小括号中的参数,用来接收参数用的,称为 “形参”调用时小括号中的参数,用来传递给函数用的,称为 “实参” 关键字参数关键字参数可以调换位置如果有位置参数需要位置参数放在关键字参...

2021-09-26 19:50:31 93

原创 Python中的公共方法和内置函数

公共方法运算符"+"合并 支持(字符串、列表、元组)"*" 复制 支持(字符串、列表、元组)"in"元素是否存在 支持(字符串、列表、元组、字典)"not in"元素是否不存在 支持(字符串、列表、元组、字典)内置函数"len" 计算容器中元素长度"max"返回容器中元素最大的值"min"返回容器中元素最小的值"del" 删除变量练习:有一个字典myDict = {"name": "杜班长", "age": 18, "gender": "...

2021-09-26 11:43:52 199

原创 Python---集合

集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重。集合的格式{}如果没有数据是字典类型的添加集合元素打印集合添加元素 addupdate 是把要传入的元素拆分,做为个体传入到集合中删除元素remove 删除集合中的元素 如果有 直接删除 如果没有 程序报错pop使用pop删除是随机删除集合中的元素discard使用discard删除 如果元素存在 直接删除 如果元素不存在 不做任何操作集合的交集和并集交集 &...

2021-09-26 10:57:45 49

原创 Python字典操作

字典的格式每个元素由2部分组成,键(key):值(value)字典的访问根据key值访问value无对应key的假如我们不确定字典中是否存在某个键而又想获取其值时修改元素有对应key的无对应key的有对应的key则是修改数据,没有对应的key是新增数据添加元素删除元素del (删除指定的元素)删除整个字典clear清空pop删除指定元素查询长度字典中循环取值首先key是取出字典里的键value是取出字典里的值...

2021-09-24 16:36:12 84

原创 Python----元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。元组的访问通过索引访问for循环访问while循环访问查询个数查询索引index 查询元素的索引,有对应的元素返回对应的索引,否则报错元组不能修改数据类型转换列表转换元组元组转换列表...

2021-09-24 11:22:47 61

原创 Python列表的常见操作

列表取值使用for循环取值使用while循环取值列表的相关操作添加元素append可以向列表(尾部)添加元素extend可以将另一个集合中的元素逐一添加到列表中append和extend的区别insert在指定位置index前插入元素object修改元素修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改查找元素就是看看指定的元素是否存在in(存在),如果存在那么结果为true,否则为falsenot in(不...

2021-09-23 20:32:30 78

原创 Python中的字符串操作

根据下标取出部分字符(注意python中下标从 0 开始)切片切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作切片的语法:[起始下标:结束:步长] (前包含后不包含)字符串的常见操作方法01:find()检测字符是否包含在整个字符串中,如果是返回开始的索引值否则返回-1方法02:index()检测字符是否包含在整个字符串中,如果是返回开始的索引值否则报错方法03:count()返回字符在star...

2021-09-23 11:37:32 73

原创 Python中的基础语句

判断语句单条件语句 if -- else实现多条件的语句if --- elif -- elseelif必须和if一起使用,否则出错if嵌套语句题一:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果车上有空座位,就可以坐下。card_money seat题二:循环语句while循环练习:使用while循环输出10遍,我爱你中国,我爱你母亲!!!计算1--100之间的整数和(包含1和100)计算1-...

2021-09-22 17:33:15 341

空空如也

空空如也

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

TA关注的人

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