自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_33840688的博客

记录学习笔记

  • 博客(70)
  • 收藏
  • 关注

原创 day26-POM页面驱动

页面驱动页面对象属性:所有在该页面的测试操作中所会用到的元素对象。比如在登录测试操作中,我们会用到用户名、密码、验证码以及登录按钮这几个页面元素,所以这几个页面元素就是登录页面这个对象的属性。方法:所有在该页面能执行的跟测试相关的操作,我们会封装为该页面对象的方法。基于页面对象和操作进行封装便于代码复用便于代码修改一般用于大规模自动化测试项目结构import unittestfrom selenium import webdriverclass Myunit(unittest

2022-03-01 22:04:55 6312

原创 day25-关键字驱动

自动化测试框架的概念使用框架可以提高自动化测试代码的可复用性、可维护性和可扩展性。框架设计比较灵活,并没有通用的标准来规定框架必须具备什么结构或功能,框架的目的只有一个,就是提高测试效率,降低测试成本。自动化测试框架的两大核心功能:驱动测试、辅助测试。驱动测试数据驱动(DDT)关键字驱动(KDT)页面驱动(POM)辅助测试数据管理报告管理配置管理日志管理数据驱动将测试代码和测试数据分离,一般用于一个测试场景需要多个不同的测试数据的条件下通过数据驱动测试(有

2022-02-28 16:26:46 7062

原创 day24-Jmeter生成测试报告与服务器端监控

Jmeter生成报告先配置环境变量JMETER_HOME:jmeter路径Path里面加上%JMETER_HOME%\bin生成报告的命令:jmeter -n -t xxx.jmx -l http.jtl -e -o report-n:以非GUI形式运行Jmeter-t:jmx脚本路径-l:运行结果保存路径(.jtl),路径+文件名-e:在脚本运行结束后生成html报告-o:用于存放html报告的目录,只能是一个空目录如果有之前运行的报告命令生成的jtl文件,也可以直接使用j

2022-02-21 18:10:40 436

原创 day24-Jmeter其他常用控件

Jmeter连接数据库填写连接池的变量名,写好数据库URL填写用户名密码在jdbc请求下写查询语句,写连接池变量名。Jmeter IF控制器if控制器用来控制它下面的测试元素是否运行建议使用函数表达式来作为判断条件,可提高性能在工具中找到函数助手,将自己写的表达式写入里面即可生成函数表达式只执行了qq的请求Jmeter事务控制器Jmeter默认把每一个请求都统计成了一个事务,但有时候我们根据业务需求,会把多个操作统计成一个事务,Jmeter也有这个功能。定义了事务控制器后,整

2022-02-21 18:09:06 373

原创 day23-Jmeter提取器

Jmeter进阶Jmeter中的关联关联主要用于解决性能测试中多个接口之间的依赖关系,一般我们可以通过Jmeter的后置处理器来进行提取。正则表达式提取器XPath提取器JSON提取器Jmeter正则表达式关联添加线程组添加HTTP请求添加正则表达式提取器添加HTTP请求添加察看结果树模板:有多个匹配结果时从第几个值开始匹配匹配数字:表示取第几个值,0为随机,-1为全部添加调试取样器可以查看取出的所有值从调试取样器中挑选符合的值Jmeter XPath提取器

2022-02-20 19:29:22 7238

原创 day23-Jmeter断言

Jmeter断言常见断言类型Xpath断言JSON断言持续时间断言Xpath断言主要用于HTML格式的响应在需要断言的请求下添加断言,选中Use Tidy兼容性对响应结果进行断言取标签的属性需要使用attribute::属性名JSON断言主要用于JSON格式的响应断言,断言非JSON格式会失败。首先解析JSON数据,如果数据不是JSON,则验证失败。使用JSON语法搜索指定的路径。如果目标找不到就会失败。如果在文档中找到JSON路径,并且要求对期望值进行验证,那么它将执

2022-02-20 16:11:46 3267

原创 day22-使用JMeter发送请求与参数化

使用JMeter发送请求发送Get带参请求在http去请求中写对应的请求路径,参数下以kv格式写参数在http请求默认值设置好web服务器的默认值协议默认是http端口默认是80发送post请求与发送get请求步骤一致,只需修改请求类型为post如果需要以json格式发送参数需要添加http信息头部管理器在管理器里加上content-type:application/json,勾选对post使用multipart/form-data发送文件文件名称:写具体的路径参数名

2022-02-19 18:15:53 3165

原创 day21-JMeter使用基础

JmeterJmeter目录结构bin目录:存放可执行文件和配置文件jmeter.bat:windows的启动文件jmeter.log:日志系统jmeter.sh:linux的启动文件jmeter.properties:系统配置文件jmeter-server.bat:windows分布式测试要用的服务器配置jmeter-server:linux分布式测试要用的副武器配置doc和printable docs目录:主要存放Jmeter的API帮助文档lib目录:该目录用来存放Jmet

2022-02-18 19:45:57 547

原创 day21-性能测试的流程

性能测试的流程性能测试需求分析弄清楚本次性能测试的需求是什么,性能测试的目的是什么?体现出专业性明确后续性能测试的要点主要需求有几种新系统的能力验证历史系统(明确的客户需求)找出系统的性能瓶颈稳定性验证(强度测试)了解系统架构在环境搭建阶段,我们要了解项目的部署在性能测试分析阶段,要通过不同的系统架构去设计相应的测试模型真实地模拟用户实际的操作场景在性能定位和调优阶段,更要升入这些技术细节才能发现具体问题的位置分析性能测试点(场景设计)场景选择有哪些

2022-02-18 19:44:09 1220

原创 day20-性能测试的分类

文章目录性能测试的分类压力测试负载测试配置测试基准测试并发测试容量测试稳定性测试什么时候(什么情况下)需要进行何种性能测试上新系统扩容调优修复秒杀/团购性能测试的介入时机性能测试常见的指标性能测试中常见的专业术语性能测试的分类从大的方面:基于代码的性能测试(关注点是函数或者方法执行的效率)基于协议的性能测试(关注服务器端的性能)(重点)客户端的性能测试(页面或者客户端的响应时间)压力测试在一定的软硬件、网络条件下,模拟用户高并发(峰值负载),持续一段时间,检测系统的各项性能指标,关注峰值下

2022-02-17 19:37:46 1143

原创 day20-性能测试基础

性能测试为什么要做性能测试解决当下各类人群使用软件产品中遇到的性能问题不同角色关注的问题普通用户响应时间(为什么这么慢)358原则:如果三秒内可以打开一个页面,用户体验比较好如果五秒秒内才打开一个页面,会影响用户体验如果超过八秒还未打开页面,则用户会放弃使用该产品能不能不要报错开发工程师系统架构设计是否合理数据库结构设计是否合理代码算法是否还有提升空间内存是否有内存泄漏现象系统管理员服务器资源应用是否合理数据库资源应用是否合理系统是否支持扩展产品的软硬

2022-02-17 18:24:56 875

原创 day18-接口测试的基础

接口测试的概念接口测试是测试系统组件间接口的一种测试接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。系统内部的接口调用相当于是函数调用,系统外部的接口大部分都是基于HTTP协议进行调用。接口测试的优势相较于UI测试,能更早的发现问题相较于UI测试,能发现更底层的问题相较于UI测试,发现和解决的效率更高接口设计文档接口设计文档主要包含以下几个部分:接口说明请求方式请求URL

2022-02-13 18:46:27 1093 1

原创 day17-接口测试基础HTTP协议

接口测试什么是接口接口就是服务器端定义的一堆函数或者是方法的集合,接口调用其实就是在调用这堆函数或者是方法。协议的概念网络协议是通信计算机双方必须遵从的一组约定。如怎样建立连接、怎样互相识别等。只有遵守这个约定,计算机之间才能互相通信交流。它最终体现为在网络上传输的数据包的格式。协议往往分成几个层次进行定义(协议栈),分层定义是为了使某一层协议的改变不影响其他层次的协议。TCP/IP四层协议应用层的协议包括telnet协议、FTP协议、HTTP协议、SMTP协议等。HTTP协议概念

2022-02-12 18:36:20 1435

原创 day16-Appium的其他手机操作

Appium的其他手机操作能够实用appium在脚本内启动其他app能够使用appium获取包名和activity的名字能够使用appium关闭app和驱动对象能够使用appium安装和卸载app能够使用appium将应用置于后台获取手机分辨率手机截图获取和设置网络状态发送按键事件到设备操作手机通知栏在appium脚本内启动其他appAppPackage:被启动应用的包名appActivity:被启动应用的activity名字driver.start_activity(a

2022-02-11 18:26:54 1961

原创 Appium滑动选择日期

Appium封装对日期控件的操作在app中针对日期控件的常见处理方式 如果是第三方库,并且有公开的api接口,就可以直接使用python或者android的uiautomator这个工具直接去调用,从而设置日期的值,避免从界面上操作,效率非常高 通过界面方式进行滑动选择操作,这种方式比较通用,没有api也可以直接使用,但比较麻烦,编程和操作效率都比较低 from appium import webdriver​​def select_date(year, month): .

2022-02-11 17:20:54 2876 1

原创 day15-Appium高级手势操作

Appium高级手势操作滑动操作scroll事件概念从一个元素滑动到另外一个元素,直到页面自动停止,模拟人滑动一下的操作。必须要求两个元素都在界面上可见,否则会报错。 orgin_el:滑动开始的元素 destination_el:滑动结束的元素 duration:滑动持续的时间,默认是600ms,时间越大滑动越慢 driver.scroll(orgin_el, destination_el, duration=600)driver = webdriver

2022-02-09 18:44:52 2144

原创 appium使用一组算式测试计算器实战

计算若干组算式from appium import webdriversettings_dict = {}settings_dict['platformName'] = 'Android' # 必须参数,定义被测脚本,不区分大小写, 必须是androidsettings_dict['platformVersion'] = '6.0.1' # 设置被测手机的android版本号settings_dict['deviceName'] = '127.0.0.1:7555'

2022-02-09 15:37:35 1060

原创 day14-Appium自动化测试框架

Appium Appium是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持IOS,Android和FirefoxOS平台。Appium驱动Android的UIAutomator框架,使用Selenium的WebDriver Json协议。 相比其他的移动自动化测试工具,Appiunm测试由于调用了Selenium的client库使其可以使用任意的语言,包括Python、Ruby、Node.js、Objective-C等。 Appium启动设置app重置策略

2022-02-05 20:42:16 2507

原创 day13-App自动化测试ADB操作

目录ADB操作安装adbADB命令ADB工作过程常用的ADB命令1.连接android手机或模拟器2.启动和停止server3.获取包名和activity名4.文件传输相关的命令5.安装和卸载apk包6.查询本机所有应用程序包7.查询apk的包名和启动activity的名称8.截取当前界面ADB操作安装adb 下载android SDK 配置环境变量 在Path中添加%ANDROID_HOME% AD

2022-02-04 18:47:36 1466

原创 day12-断言失败后截图

有两种方法使用异常处理 使用装饰器异常处理方法就是使用try...except将断言包起来,在except中写截图代码(每个断言就需要一个异常处理,不现实)装饰器进行截图 def add_screenshot(func): def warrper(self, *args, **kwargs): try: func(self, *args, **kwargs) except Assert

2022-02-02 19:31:11 888

原创 day12-在unittest框架中使用参数化

参数化所谓参数化,是指利用不同的测试数据来侧测试相同的测试场景,为了提高代码的复用性,增加代码效率而采用一种代码编写的方法,叫参数化,也就是数据驱动。参数化的几种形式 参数值为单个参数形式 参数值为组合参数形式 从函数中返回参数值 从文件中返回参数值 组合参数 @data( ('test', '123', '密码错误'), ('admin', '1201', '没有此用户'), ('', '123',...

2022-02-02 19:01:56 1458

原创 day12-封装等待方法

def find_element(self, locator): try: element = WebDriverWait(self.driver, 30, 0.5).until( lambda x: x.find_element(*locator) ) return element except NoSuchElementException as e: ...

2022-02-02 16:34:19 925

原创 mms自动化测试unittest生成测试报告

from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport unittestclass mms_Demo(unittest.TestCase): '''测试mms医药管理系统的登录功能''' def setUp(self) -.

2022-02-02 15:31:00 211

原创 unittest测试mms医药系统登录模块

from selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECimport unittestclass mms_Demo(unittest.TestCase): '''测试mms医药管理系统的登录功能''' def setUp(self) -.

2022-02-01 16:24:24 979 1

原创 day11-unittest框架

目录unittest框架断言操作自动化用例管理TestLoader类unittest框架 通过unittest框架创建测试 必须继承unittest.TestCase类 可以定义setUp和tearDown方法进行初始化,也可以使用setUpClass和tearDownClass进行初始化 所有测试方法必须以test开头。测试方法会在运行时自动被调用。 可以使用pycharm自带的unittest框架运行,也可以以普通方式运行。 import

2022-01-21 18:24:39 648

原创 day10-selenium其他场景处理

frame在web应用中经常会出现frame的嵌套应用,假设页面上有A,B两个frame,B在A内,具体思路 使用switch_to.frame()方法,把当前定位的主体切换到B frame里 使用switch_to.default_content()从B frame切换回A frame driver.switch_to.frame() # 切换到frame内操作 括号内写定位器 定位frame语句 find_elementdriver.switch_to.default_c.

2022-01-20 17:49:37 338

原创 day09-web自动化测试-等待

web自动化测试-等待有时页面跳转时没有加载完成,导致想获取的元素没有获取到,这时候就会报错,想解决这个问题就需要用到等待。强制等待time.sleep(2)强制等待指定的时间,不管页面是否已经加载完成优势:用法简单,一般用于项目调试,或者用于等待元素状态、文本发生改变。劣势:等待时间固定,如果在脚本中大量使用会导致脚本运行效率低隐式等待driver.implicitly_wait(30)最大等待30秒 隐式等待/全局等待 设置一次后(只需要设置一次),全

2022-01-19 16:45:25 656

原创 day08-Selenium Webdriver

Selenium Webdriver安装ChromeDriverChromeDriver Mirror到此链接安装对应版本的WebDriver将下载路径配置环境变量webdriver的工作原理自动化测试的LOVE四步法实操测试from selenium import webdriverimport time​driver = webdriver.Chrome(r'D:\Program Files (x86)...

2022-01-09 17:46:01 328

原创 day07-自动化测试

自动化测试什么是自动化测试自动化测试是吧人对软件的测试行为转化为由机器执行测试行为的一种实践,对于最常见的GUI自动化测试来讲,就是由自动化测试模拟之前需要人工在软件界面上的各种操作,并且自动验证其结果是否符合预期。什么样的项目适合自动化 需求文档,不会频繁变更 研发和维护周期长,需要频繁执行回归测试 需要在多种平台上重复运行相同测试的场景 性能、兼容性通过手工测试无法实现,或者手工测试成本太高。 被测软件的开发较为规范,能够保证系统的可测试性

2022-01-08 22:04:28 326

原创 leetcode数据库中等题目

176. 第二高的薪水select ifnull((select distinct Salary from Employee order by Salary desc limit 1, 1), null) as SecondHighestSalary 子查询去重查找第二高的薪水,如果为空用ifnull的第二个参数(null),查询结果起别名177. 第N高的薪水CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INTBEGIN

2022-01-04 17:23:40 482

原创 day06-移动端测试

目录移动端测试APP测试的主要方式APP主要的测试类型和测试点功能测试中断测试UE测试(用户体验测试)安装卸载测试APP兼容性测试稳定性测试APP性能测试网络测试电量测试移动端测试APP测试的主要方式 真机测试 模拟器测试 云测平台 APP主要的测试类型和测试点功能测试 业务流程正确性 UI界面元素显示是否正确 中断测试 手机上事件是分优先级的 ...

2021-12-20 10:54:49 326

原创 day06-移动端测试与PC端测试对比

移动端测试与PC端测试对比PC端测试 硬件:除特殊产品之外基本上不需要关心硬件设备 OS:Windows 软件:BS架构和CS架构 移动端测试 硬件:不同设备、运营商、CPU、内存、屏幕、网络、重力感应、GPS、电池电量都会影响产品。 OS:Android、IOS 软件 ...

2021-12-20 09:37:00 1304

原创 day05-回归测试和验收测试

回归测试回归测试的目的 检查缺陷是否真的被修复了。 程序员在修复缺陷的过程中是否产生新的缺陷 回归测试流程 在测试策略制定阶段,制定回归测试策略 确定需要回归测试的版本Version,哪个版本上bug被修改了就在哪个版本上回归 回归测试版本发布,按照回归测试策略执行回归测试 回归测试通过,关闭缺陷报告单 回归测试不通过,缺陷报告单返回开发人员,开发人员重新修改问题,再次提交测试人员回归测试 回归测试策略 完全回归.

2021-12-16 08:43:09 1720

原创 day05-关于缺陷

目录关于缺陷缺陷的定义缺陷管理如何填写缺陷报告缺陷严重程度缺陷状态迁移表缺陷中常见的问题关于缺陷缺陷的定义 软件没有实现产品的说明书所描述的功能。 软件实现了产品说明书描述不应有的功能 软件执行了产品说明书没讲的操作 软件没有实现产品说明书没讲但应该实现的功能 从软件测试员的角度来看,软件难以理解、不易使用、运行缓慢,或者最终用户认为不对。 缺陷管理 掌握软件缺陷的生命周期 掌握高质量缺陷报告的填写

2021-12-16 08:39:43 201

原创 day05-测试需求分析流程

目录测试需求分析流程测试点提取思路建立需求跟踪矩阵测试需求分析流程 根据产品需求提取系统的测试点 编写需求跟踪矩阵 根据测试点利用适当的测试用例设计方法设计测试用例 测试点提取思路 首先检查界面元素的显示是否正确 测试页面的基本功能。如果页面既有表单(既有输入域又有提交按钮的页面,都叫表单 页面)也有列表,则优先测试表单功能是否正常。 针对表单在测试时,需要依据表单里面的每个字段依次进行测试。凡是用户可输入的输 入域,都要使用等价类和边

2021-12-16 08:35:55 586

原创 day04-错误猜测法和测试用例设计总结

目录错误猜测法错误猜测法实例测试用例设计总结错误猜测法 错误猜测法就是根据经验猜想可能有什么问题以此来设计测试用例 错误猜测法只能作为测试设计的补充而不能单独用来设计测试用例,否则可能会造成测试的不充分 错误猜测不是瞎猜,不是没有根据和目的的猜测,他需要依据对系统薄弱地方的了解和对开发人员盲点的了解 错误猜测法实例已知一段程序能够对任意输入的列表进行排序,试根据错误猜测法写出测试点。a = [3,5,8,9,2,4]重复:[1,1,1,1,1,1,1

2021-12-14 19:34:29 398

原创 day04-判定表法

判定表法判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确 条件桩 动作桩 条件项 动作项 条件桩:原密码是否正确,新密码是否输入一致,新密码复杂度是否达到要求,动作桩:密码是否修改成功,是否有提示信息一共三个条件桩,两个动作桩条件项的个数是2的条件桩数量次方,这个是2^3次方也就是8个条件项。每行条件项都折半判断,第一行一半真,一半假。第二行两边的真假各一半..

2021-12-14 11:52:50 1327

原创 day-04边界值法

目录边界值法边界值法相关概念边界值法分析原则边界值法设计用例步骤边界值法使用条件(重点:可度量)输入条件明确了一个取值范围,或规定了值的个数输入条件明确了一个有序集合边界值法相关概念 上点:边界上的点 离点:离边界最近的点 内点:取值域内的任意一点 图中两个取值范围的上点是(18,60)和(20,80)看到的两个数字就是上点。如何使用括号法快速判断离点?第一个取得到18和60是所以括号把18和6...

2021-12-14 10:24:22 266

原创 day04-等价类划分法

目录常用测试用例设计方法等价类法等价类划分原则:等价划分实例等价类设计步骤常用测试用例设计方法 等价类 边界值 判定表 流程分析法(场景分析法) 错误猜测法 等价类法定义: 某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中某一个输入不会导致问题,则集合中其他输入条件进行测试也不可能发现问题。有效等价类:有效等价类对程序有意义、正确的输入数据。无效等价类:无效等价类即对程序无意义、不正确的输入数据。输入域:

2021-12-14 09:26:18 3434

原创 day03-质量模型的概念

目录质量模型的概念常见的测试类型项目相关的文档质量模型的概念软件测试需要从以下几个方面去考虑,如果问一支笔怎么测试就要从以下几个方面去考虑 功能性 可靠性 易用性 性能效率 安全性 兼容性 可移植性 维护性 问题:给你一个水杯怎么测试凡是问到一个产品怎么测(不管是软件还是硬件),都必须从产品质量模型所规定的8大质量属性去考虑。面试不要只说功能,要从其他方...

2021-12-13 17:33:54 392

空空如也

空空如也

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

TA关注的人

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