- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 学习笔记—功能测试的基础认知
软件测试常见的工作模型v模型:详细见文章软件测试模型-V模型_机智的测试生活的博客-CSDN博客_v模型测试W模型:详细见文章软件测试W模型_芒果忙不过的博客-CSDN博客_w模型H模型:除了测试工作之外,其他流程并行优点:软件测试出测试执行外,还有很多工作软件测试完全独立,其他流程并发进行具有很强的灵活性缺点:管理型要求高技能要求高测试就绪点分析困难测试用例的定义 测试用例(test case)是为特定的目的而设计的一组测试输入、执行条件和预期的结
2022-09-15 17:17:08 389 1
原创 测试常用的Linux命令
前言直接操作硬件将把操作硬件的代码封装成系统调用,供程序员使用虚拟机==软件可以模拟的具有完整硬件系统的功能可以在虚拟机上安装不同的操作系统Linux内核只有一个,发行版有很多种内核来运行程序和管理像磁盘和打印机等硬件设备的核心程序终端命令---系统调用---硬件发行版:包括桌面环境、办公套件、媒体播放器、数据库等应用软件常见的发行版本:UbuntuRedheadFedoraopenSUSECentOSArchLinux Mint............win
2022-08-24 10:51:14 1858
原创 运用jmeter做接口与性能测试
接口概念不同单元或某块之间进行通信的通道,他有一套规范一套标准(数据与数据之间的交互)(遵循既定规则,比如百度搜索的wd)接口规范会预定到文档,称之为api文档接口的作用项目开发中,未采用接口时的缺点1、研发标准不统一,团队磨合难度高2、研发周期短3、可扩展性差使用接口时带来的优点1、统一设计标准,更易于团队磨合2、缩短研发周期3、扩展性灵活4、前后端都可以使用自己熟悉的技术,只需保证最终产出符合规范即可接口测试的概念跨过前段,直接测试后端实现是否符合接口规.
2022-08-16 16:41:56 2893
原创 App自动化测试笔记(十二):Yaml数据
Yaml数据格式应用场景概念和语法规则Yaml 是一种所有编程语言可用的友好的数据序列化标准。语法和其他高阶语言类似,并且可以简单表达字典、列表和其他基本数据类型的形态。语法规则如下:1. 大小写敏感。2. 使用缩进表示层级关系。3. 缩进时不允许使用Tab键,只允许使用空格。4. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可。规律:如果是字典,直接写key{"name":"xiaoming","age":"18"}name:"xiaoming"age:"18"如
2022-08-10 09:10:17 1943
原创 App自动化测试笔记(十一):综合案例
短信案例需求在《短信》应用中,进入发送短信页面,在姓名和内容栏中,输入对应的数据,并点击发送。包名界面名:com.android.mms/.ui.ConversationList发送短信页面标识:resource-id,com.android.mms:id/action_compose_new接收者标识:resource-id,com.android.mms:id/recipients_editor内容标识:resource-id,com.android.mms:id/embedded_te
2022-07-26 14:24:55 856
原创 App自动化测试笔记(十):PO模式
什么是PO? --页面和脚本分离 --是一种设计模式优点 --减少冗余,提高复用性 --降低耦合度 --降低维护成本案例练习"""更多-移动网络-首选网络类型-点击2g更多-移动网络-首选网络类型-点击3g显示-搜索按钮-输入hello-点击返回"""from appium import webdriverimport pytestimport timeclass TestSetting: def setup(self): ...
2022-07-15 09:43:10 415
原创 App自动化测试笔记(九):pytest高级用法
一、跳过测试函数1、方法名:跳过测试函数参数:condition:跳过的条件,必传参数reason:标注原因,必传参数@pytest.mark.skipif(condition,reason)注意:condition是bool类型的,如果为True表示跳过代码:import pytestclass Test_login(): ANDROID_VERSION = 5.0 @pytest.mark.skipif(ANDROID_VERSION < 6.0, r...
2022-06-03 08:59:09 517 1
原创 App自动化测试笔记(八):pytest运行方式和配置文件
1、安装pip3 install pytest显示当前版本pytest --version2、pytest运行方式测试代码:class TestLogin(): def setup(self): print("this is setUp") def teardown(self): print("this is tearDown") def test_Login(self): print("start
2022-06-01 17:10:45 232
原创 App自动化测试笔记(七):手机操作API
手机操作API1、获取手机分辨率driver.get_window_size()返回值:字典类型有两个key,分别是width和height宽和高的值是int类型2、手机截图参数:filename:指定路径下,指定格式的图片driver.get_screenshot_as_file(filename)代码:from appium import webdriverimport timedesired_caps = dict()desired_caps['platf
2022-05-31 10:29:26 298
原创 App自动化测试笔记(六):App手势操作
滑动和拖拽事件swipe滑动事件概念:从一个坐标的位置滑动到另一个坐标的位置方法:从一个坐标的位置滑动到另一个坐标的位置,只能是两个点之间的滑动参数:start_x : 起点x轴坐标start_y : 起点y轴坐标end_x : 终点x轴坐标end_y : 终点y轴坐标duration : 滑动这个操作一共持续的时间长度,单位:msdriver.swipe(start_x,start_y,end_x,end_y,duration = None)小结:距离相同时,持续时间越长,惯性
2022-05-31 09:48:35 332
原创 App自动化测试笔记(五):元素等待与获取元素属性
隐式等待关键方法:timeout:等待的时长driver.implicitly_wait(timeout)作用:1、在设置了超时时间之后,后续所有的定位元素的方法都会在这个时间内等待元素的出现。2、如果出现了,直接进行后续操作3、如果没有出现,报错,NoSuchElementException。————————————————————————————显式等待步骤1、导包2、创建WebDriverWait对象3、调用WebDriverWait对象的until方法公式WebD
2022-05-13 16:03:18 349
原创 App自动化测试笔记(四):UIAutomatorViewer与元素定位API
目录UIAutomatorViewer2、元素定位操作apiUIAutomatorViewer1、应用场景定位元素的时候必须根据元素的相关特征来进行定位,而 UIAutomatorViewer 就是用来获取元素特征的。如何使用UIAutomatorViewer1、保证想要查看的元素在当前的频幕上2、打开UIAutomatorViewer工具3、点击左上角左数第二个按钮4、点击想要获取特征的元素5、查看工具右下角相关的特征信息使用UIAutomat
2022-05-12 10:27:33 504
原创 App自动化测试笔记(三):Appium环境、前置条件和基础API
移动端自动化工作原理python代码->appium-python库->Appium->手机环境搭建:1、安装Appium2、安装Appium-python-client pip install appium-python-client 查看是否安装成功:pip list前置参数和参数说明# 导模块from appium import webdriver# 创建一个字典,包装相应的启动参数desired_caps = dict()# 需要连接的手机的
2022-05-11 13:38:18 685 2
原创 App自动化测试笔记(二):ADB工具
目录一、ADB调试工具二、包名和界面名的概念三、adb文件传输四、获取app启动时间五、adb获取手机日志六、其他命令一、ADB调试工具A、adb构成client端,在电脑上,负责发送adb命令daemon守护进程,在手机上,负责接收和执行adb命令server端,在电脑上,负责管理client和daemon之间的通信B、adb工作原理1. client端将命令发送给server端2. server端会将命令发送给daemon端3. daemon端进行执
2022-05-04 22:57:55 397
原创 App自动化测试笔记(一):搭建环境
一、三个环境1、android模拟器:模拟安卓手机2、androidSDK:android SDK给你提供开发测试所必须android API类库3、java:android底层是c、c++语言,应用层是java语言二、java环境搭建java安装安装jdk-8u151-windows-x64.exe配置环境变量自定义变量JAVA_HOME=D:\jdk1.8注意:D:\jdk1.8 为jdk的安装目录,我将JAVA_HOME搭在了系统变量上%JAVA_HOME%\bin%
2022-05-02 02:59:08 3496 2
原创 web自动化笔记十六:日志收集
日志的作用: -调试程序 -了解系统程序运行情况,是否正常 -系统程序运行故障分析与问题定位 -用来做用户行为分析的数据统计日志级别:是指日志信息的优先级、重要性或者严重程度 DEBUG:调试级别,打印非常详细的日志信息,通常用于对代码的调试 INFO:信息级别,打印一般的日志信息,突出强调程序的运行过程 WARNING:警告级别,打印警告日志信息,表现会出现潜在错误的情形,一般不影响软件的正常使用 ERROR:错误级别,打印错误异常信息,...
2022-03-25 14:28:09 1979
原创 web自动化笔记十五:数据驱动
数据驱动1、什么是数据驱动 答:使用测试数据驱动测试用例的执行,测试数据直接影响结果2、特点 答:1、可以理解为数据驱动是一种模式或思想 2、将维护的焦当转到测试数据上,而非测试脚本 3、数据驱动必须结合参数化技术使用 数据驱动 = 数据储存文件 + 读取数据读取工具 + 参数化技术3、数据储存文件类型 1、json、excel、txt、xml、csv、数据库 重点:json txt:扩展
2022-03-15 14:32:40 1079
原创 web自动化笔记十四:PO模式封装
Po模式封装 V1-V6 V1:不采用任何模式(线性模型) V2:采用测试框架 unittest V3:业务代码和页面对象进行 V4:实际中的po模式编写 V5:对PO分层之后的代码继续优化 V6:把共同操作提取封装到父类中,子类直接调用父类的方法,避免代码冗余案例: 百度账号登陆 1、账号不存在 2、密码错误V1模式执行代码#导包from selenium import webdriverf
2022-03-14 14:25:23 4054 7
原创 web自动化笔记十三:参数化、跳过用例、生成HTML测试报告
1、为什么要参数化解决冗余代码问题2、什么是参数化说明:根据需求,动态获取参数3、参数化应用场景场景:解决相同业务逻辑,不同测试数据问题。实现:通过安装unittest扩展插件parameterized来实现步骤:1、导包:from parameterized import parameterized2、修饰测试函数 @parameterized.expand(列表类型数据)3、在测试函
2022-02-22 13:47:24 1085
原创 web自动化笔记十二:断言
断言概念:让程序代替人为判断测试程序执行结果是否符合预期结果的过程1、为什么要学习断言? 自动化脚本在执行的时候一般都是无人值守状态,我们不知道执行结果是否符合预期结果,所以我们需要让 程序代替人 为检测程序执行的结果是否符合预期结果,这就需要使用断言。注意:自动化脚本不写断言,相当于没有执行测试一个效果2、常用断言方法1、assertTrue(result):如果结果为True通过,否则失败【掌握】2、assertFalse(result):如果结果为False通过,否则失败
2022-02-17 14:04:57 1463
原创 web自动化笔记十一:Fixture装置函数
一、Fixture装置函数说明:Fixture是一个概述,对一个测试用例环境的初始化和销毁就是一个Fixture二、Fixture控制级别: 1、函数级别<常用> def setUp()/def tearDown() 特性:几个测试函数,执行几次。每个测试函数执行之前都会执行setUp,执行之后都会执行tearDown 2、类级别<常用> def setUpCl
2022-02-16 11:19:49 373
原创 web自动化笔记十:UnitTest基本使用
一、UnitTest框架 ①、什么是框架?1、框架英文单词framework2、为解决一类事情的功能集合 ②、为什么使用UnitTest框架1、批量执行用例2、提供丰富的断言知识3、可以生成报告 ③、UnitTest核心要素1、TestCase —测试用例...
2022-02-15 15:44:14 1109
原创 web自动化笔记九:验证码的处理方式
一、验证码常用的处理方式 ①、说明:Selenium中并没有对验证码处理的方法,在这里我们介绍一下针对验证码的几种常用处理方式 ②、方式:1)、去掉验证码(测试环境下采用)2)、设置万能验证码(生产环境和测试环境下-采用)3)、验证码识别技术(通过Python-tesseract来识别图片类型验证码;识别率太低)4)、记录cookie(通过记
2022-02-04 11:16:44 1875
原创 web自动化笔记八:滚动条处理和窗口截屏
一、滚动条处理 ①为什么要操作滚动条? 1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载 2. 页面注册同意条款,需要滚动条到最底层,才能点击同意实现方式: ②说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行javaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的
2022-02-01 15:11:44 1457
原创 web自动化笔记七:Frame切换、多窗口切换
1、frame操作frame 浏览器一个页面里内嵌一个页面①driver.switch_to_frame(id或者name)#快被淘汰的写法②driver.switch_to.frame()#被推荐的写法driver.swith_to.default_content()#会客厅,回到主页如果三层frame,第一层:driver.switch_to.frame(id或者name)第二层:driver.switch_to.frame(id或者name),只能逐级切换frame第三层如果drive
2022-01-31 15:17:09 3016
原创 web自动化笔记六:弹出框处理
1、弹出框类型:1)、alert 警告框2)、confirm 确认框3)、prompt 提示框2、弹出框处理方法(方法三种弹出框操作都一样) `1)、获取弹出框对象: alert = driver.switch_to.alert 2)、调用 alert.text —>返回alert/confirm/prompt中的文字信息
2022-01-28 09:55:54 4676
原创 web自动化笔记五:下拉框操作 — <select>元素
1、说明select类时slenium为操作select标签特殊封装的2、实例化对象 select = Select(element) element:<select>标签对应的元素,通过元素定位方式获取, 例如:driver.find_element_by_id(“selectA”)3、操作方法1、select_by_index(index) —>根据option索引来定位,从0开始2、select_by_value(value)
2022-01-27 17:29:34 1623
原创 web自动化笔记四:隐式等待和显示等待
1、为什么要设置元素等待? 由于电脑配置或网络原因,在查找元素时,元素代码未第一时间内被加载出来,而抛出未找到元素异常。2、什么是元素等待? 元素在第一次未找到时,元素等待设置的时长被激活,如果在设置的有效时长内找到元素,继续执行代码,如果超出设置的时长未找到元素,抛出未找到元素异常3、元素等待分类 1、隐式等待 2、显示等待
2022-01-27 11:00:08 2697
原创 web自动化笔记三:鼠标和键盘操作
鼠标操作方法说明:在selenium中将操作鼠标的方法封装在ActionChains类中实例化对象:action = ActionChains(driver)匿名操作方法:ActionChains(driver).context_click(element).perform()常用函数方法①、context_click(element) 右击—>模拟鼠标右键点击的效果应用:context_click(element).perform()②、double_click(elemen.
2022-01-26 16:46:10 937
原创 web自动化笔记二:浏览器的常用操作方法
①maximize_window():最大化浏览器窗口 — >模拟浏览器最大化按钮②set_window_size(width,height):设置浏览器窗口大小 —> 设置浏览器宽、高(像素点)③set_window_position(x,y):设置浏览器窗口位置 —》设置浏览器位置④back():后退 —〉模拟浏览器后退按钮⑤forward():前进 —》模拟浏览器前进按钮⑥refresh():刷新 —〉模拟浏览器F5刷新⑦close():关闭当前窗口 —》模拟点击浏览器关闭
2022-01-20 15:11:30 974
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人