自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 自动化测试框架构建规范

Html_report: 存放测试报告(测试报告不纳入git管理,但是文件夹要纳入到git管理;Git---add to .gitignore 进行过滤管理)Testcases: 存放测试用例(按照模块划分公司的不同接口存放的目录)Run_api_cases.py: 测试入口程序 执行测试用例 +生成报告。/空目录/*.* 或 /空目录/*.后缀名。README.md: 项目概述文件。common: 存放公共函数。

2024-12-06 10:06:21 225

原创 自动化测试框架介绍

在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中。这类似于表驱动测试,在表驱动测试中,它的测试用例是包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者是一个传送机构。这个框架需要开发数据表和关键字。这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来“驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很类似。

2024-12-06 10:05:46 504

原创 自动化测试简介

一般IT上所说的自动化测试是指功能自动化测试,通过编码的方式用一段程序来测试一个软件的功能,这样就可以重复执行程序来进行重复测试的目的。Selenium:是一款用于B/S架构的软件测试工具,它支持多平台、多语言、多浏览器去实现自动化测试。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。是把以人为驱动的测试转化为机器执行的一种过程,它是一种以程序测试程序的过程。5、需要在多平台运行相同的测试用例、组合遍历型的测试、大量的重复测试。1、使用Appium工具;

2024-12-06 10:05:02 374

原创 手机APP测试知识点介绍

一,手机操作系统:安卓(Android):内核:开源的linux系统;安卓2007年推出第一个版本;安卓10之前的系统都是采用甜点命名法;2012年 国家商务部 和谷歌公司签订了一份免费试用5年安卓系统的协议;安卓 APP 属于前端、一般使用Android studio + java 开发的 IOS:内核:商业化unix系统;2007年推出;当前最火的ios手机 iphone4 iphone4s 当年被称为肾机;IOS APP 由苹果公司专门设计的编程语言开发的 Objective-c (旧版本苹

2024-12-06 10:00:55 274

原创 Python+Appium+Pytest+Allure实战APP自动化测试

'udid': '127.0.0.1:7555', # 填写通过命令行 adb devices 查看到的udid。'appActivity': '.JisuanjizixieActivity', # 填写被测app的入口。'platformVersion': '6.0.1', # 填写android虚拟机/真机的系统版本号。'appPackage': 'com.sky.jisuanji', # 填写被测app包名。'deviceName': 'MuMu', # 填写安卓虚拟机/真机的设备名称。

2024-12-06 10:00:05 1055

原创 软件测试-测试用例案例及思维导图展示

1.界面是否简介美观;3.朋友圈界面图片是否正常显示;4.朋友圈界面文字是否正常显示;1.发送部分可见的朋友圈,其余人不可见;发送部分可见,是否可以沿用上次的名单;

2024-12-06 09:56:34 952

原创 软件测试-测试用例的几种常见设计方法

选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。功能测试方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。中最严密的测试方法。水平:因素的可能值,称为水平。

2024-12-06 09:55:59 675

原创 软件测试-测试用例

一.概念1.什么是测试用例?在测试过程中很重要的一类文档,它是测试工作的核心、是一组在测试时输入输出的标准、是软件需求的具体对照。2.测试用例的作用:检验软件是否满足客户需求、体现一个测试人员的工作量、展现测试用例的设计思路3.测试用例所包含的内容:用例编号、用例名称、测试背景、前置条件、优先级、重要级、测试数据、测试步骤、预期结果、实际结果、备注。4.测试用例的编写流程:需求分析->提取测试点->测试用例编写->测试用例评审。

2024-12-06 09:55:28 489

原创 软件测试的工作流程

测试计划制定阶段其实主要的任务就是编写完整的测试流程安排,测试哪些模块,用什么方法测试,比如常见的冒烟测试、随机测试、黑盒测试、性能测试等等。这个阶段对测试主管的整体测试调控能力有很高的要求。这个阶段的主要工作是编写测试用例、参考项目的设计原型图、产品的设计需求和详细设计标准等。项目需求是整个测试过程中的前置条件,也是任何一个测试工作开始前的第一步。所谓的项目需求分析是指测试员分析和确定被测试的项目的测试工作安排。缺陷管理主要是用于收集、管理和沟通项目缺陷的过程,重点考察的是缺陷的识别和缺陷的解决。

2024-12-06 09:54:57 338

原创 软件测试-软件缺陷

1、软件在使用过程中存在的任何问题都叫软件的缺陷。2、缺陷不等同于bug。3、缺陷的存在会导致软件产品在某种程度上不能满足用户的需求4、只要你的软件让用户觉得不爽。

2024-12-06 09:54:25 1025

原创 软件测试有哪几个阶段

2、集成测试阶段: 集成测试又称组装测试,在单元测试的基础上把软件逐渐组装起来一起继续测试的过程。集成测试主要以黑盒为主(当然接口测试也在这阶段进行)1、单元测试阶段:单元测试是以最小单位的测试、也是最初期的测试阶段、一般是以一个函数方法窗口、一个功能模块、都可以看做是一个单元,主要依据的是详细设计文档。3、系统测试阶段: 整个功能全部完成后对集成了硬件和软件的完整系统进行模拟真实的环境模拟、测试重点主要在于。(2)beta阶段:在最终用户的实际环境中由最终用户对软件进行检查。2)整个系统的兼容性测试。

2024-12-06 09:53:54 340

原创 软件测试的几种方法

(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。1、从是否关心内部结构来看。

2024-12-06 09:53:16 636

原创 软件测试理论

1.软件测试(Software Testing),其经典定义或是标准定义:在规定的条件下对程序进行操作,以发现程序错误。2.通俗来讲,就是通过“人工”或“自动化”的手段,来测试某个程序或系统,进而检验其是否满足规定的需求或是弄清预期结果与实际结果之间的差别。

2024-12-06 09:52:38 565

原创 接口自动化测试思路和实战(5):【推荐】混合测试自动化框架(关键字+数据驱动)

定义临时存放 变量的字典self.tmp_variables = {} # 把取的值存放到字典中 key为变量没弄过 value 为截取的值。

2024-12-05 16:08:23 1141 2

原创 接口自动化测试思路和实战(4):数据驱动测试框架

在这里测试的输入和输出数据是从数据文件中读取(数据池,ODBC源,CSV文件,EXCEL文件,Json文件,Yaml文件,ADO对象等)并且通过捕获工具生成或者手工生成的代码脚本被载入到变量中。在这个框架中,变量不仅被用来存放输入值还被用来存放输出的验证值。整个程序中,测试脚本来读取数值文件,记载测试状态和信息。这类似于表驱动测试,在表驱动测试中,它的测试用例是包含在数据文件而不是在脚本中,对于数据而言,脚本仅仅是一个“驱动器”,或者是一个传送机构。

2024-12-05 13:45:06 931

原创 接口自动化测试思路和实战(3):测试库框架

与模块化测试脚本框架很类似,并且具有同样的优点。不同的是测试库框架把待测应用程序分解为过程和函数而不是脚本(而测试脚本中只是包含调用函数的用例即可)。这个框架需要创建描述模块、片断以及待测应用程序的功能库文件。场景: 在模块化框架中,我们发现常用的获取 token过程由于调用频繁,经常改动导致不好维护,所以做成一个函数进行调用,而其它所有的接口都可能会进行变更;比如: 用例如下:获取token---创建标签。获取token---创建标签---删除刚创建的标签。

2024-12-05 11:19:47 892

原创 接口自动化测试思路和实战(2):模块化测试脚本框架

需要创建独立的可描述的模块、程序片断以及待测试应用程序的脚本。这些小脚本进行组合,就能组成用来独立运行特定的测试的测试用例脚本。

2024-12-05 11:17:15 689

原创 接口自动化测试思路和实战(1):编写线性测试脚本实战

测试工程师应用自动化测试框架的目的: 增强测试脚本的可维护性、易用性(降低公司自动化培训成本,让公司的测试工程师都可以开展自动化测试)。

2024-12-05 11:16:18 720

原创 接口测试用例的文档编写

微信开放文档地址:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html。功能测试用例和接口测试用例基本一样;每个公司规定的不一样,以实际为准。

2024-12-05 11:13:24 239

原创 HTTP协议概述

网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。HTTP协议(超文本传输协议)是一种网络通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。默认端口:80HTTPS协议是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。默认端口:4431、支持客户/服务器模式。

2024-12-05 11:12:48 650

原创 接口测试概述

HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP 协议的客户端编程工具包,并且它支持HTTP 协议最新的版本和建议。软件接口包括对内和对外接口,对外的接口指系统与系统之间的调用;测试与系统相关联的外部接口,测试的重点是检查数据的交互,传递和控制管理过程,提供测试质量和测试覆盖,更好地重现软件缺陷和定位错误。注意:接口测试的流程尽量标准化;接口测试是项目测试的一部分,它测试的主要对象是接口,是测试系统组件间接口的一种测试。

2024-12-05 11:11:58 657

原创 web自动化测试思路及实战(2):web自动化测试思路及实战

1、 python 列表、字典、循环、面向对象 (python语言基础)2、 python第三方模块的使用:os time 、文件操作、日期查找、配置文件ini、log日志、excel (框架底层的工具)3、selenium入门:驱动、浏览器、元素识别、元素操作(页面元素识别、元素操作)4、unittest框架:(优化成4章)框架的流程、断言、忽略测试、构建套件、测试报告生成(测试用例层、执行层)5. selenium+unittest实战:编写线性脚本框架,

2024-10-02 18:05:16 992

原创 web自动化测试思路及实战(1):PO设计模式介绍

pageobjects 模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通过调用页面类来获取页面元素,这样巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。识别数据分离,实例化对象的时候不识别元素,操作的时候再去识别)简单来讲,就是将代码以页面为单位进行组织,针对这个页面上的所有信息,相关操作都放到一个类中;按操作识别元素,识别一个元素操作一个,风险比较小。

2024-10-01 12:37:59 325

原创 Unittest单元测试框架-知识点总结

suite = unittest.TestLoader().loadTestsFromName("demo11_测试套件4.test_case1.test_aaa")suite01 = unittest.TestLoader().loadTestsFromName('demo08_测试套件1.test_case.test_aaa')# suite = unittest.TestLoader().loadTestsFromName("demo11_测试套件4.test_case1")

2024-09-27 13:56:50 835

原创 Unittest(9):unittest的第三方库paramunittest参数化基础及应用

参数化测试用于当需要使用多组不同的测试数据测试同一个方法的时候paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例实现unittest参数化的方式有多种,如ddt、paramunittest等。

2024-09-27 13:56:12 660

原创 Unittest(8):unittest_生成测试报告

配置测试报告要保存的文件路径。

2024-09-27 13:55:39 1067

原创 Unittest(7):unittest_执行用例的详细信息

suite.addTest(Test_Case("test_bbb")) # addTest(类名(“方法名称”))suite.addTest(Test_Case("ccc")) # 不是以test开头的用例也可以执行。print("------------执行结束----------------")非常类似静默模式 只是在每个成功的用例前面有个".",每个失败的用例前面有个 "F"print("我是tearDown方法:执行测试后的清除工作")print("我是case:test_bbb")

2024-09-27 13:54:55 287

原创 Unittest(6):unittest_构建测试套件

suite = unittest.TestLoader().loadTestsFromName("demo11_测试套件4.test_case1.test_aaa")top_level_dir=None) # 文件类型。# suite.addTest(test_case("test_bbb")) # addTest(类名(“方法名称”))suite.addTest(Test_Case("test_bbb")) # addTest(类名(“方法名称”))

2024-09-27 13:54:00 974

原创 Unittest(5):unittest_忽略用例

在执行测试脚本的时候,可能会有某几条用例本次不想执行,但又不想删也 不想注释,unittest通过忽略部分测试用例不执行的方式,分无条件忽略和有条 件忽略,通过装饰器实现所描述的场景。@unittest.skipUnless(False,"条件为假False则跳过")print("我是tearDown方法,执行测试后的清除工作")print("我是setUp方法,进行测试前的初始化工作")@unittest.skipIf(True,"条件为真时跳过")@unittest.skip("无条件跳过")

2024-09-27 13:53:14 439

原创 Unittest(4):unittest_用例执行顺序

对于方法来说,test_aaa()方法会有优先于test_bbb()被执行。当在一个测试类或多个测试模块下,用例数量较多时,unittest在执行用例 (test_xxx)时,并不是按从上到下的顺序执行,有特定的顺序。suite.addTest(Test_case("test_bbb")) # 类名(方法名称)print("我是tearDown方法,执行测试后的清除工作")print("我是tearDown方法,执行测试后的清除工作")print("我是setUp方法,进行测试前的初始化工作")

2024-09-27 13:52:33 845

原创 Unittest(3):unittest_断言操作

代码示例:# 常用断言print("我是setUp方法,进行测试前的初始化工作")def tearDown(self) -> None: # 表示该方法没有返回值print("我是tearDown方法,执行测试后的清除工作")=3,断言失败") # 判断2!=3 ,断言失败self.assertEqual(2,2) # 判断2==2self.assertNotEqual(4,5) # 判断 4!=5。

2024-09-27 13:51:49 736

原创 Unittest(2):unittest_setup前置初始化和teardown后置操作

测试前的初始化操作测试后的操作代码示例:import unittest # 导入unittest模块class test_case(unittest.TestCase): # 集成TestCase类print("我是setUp方法,进行测试前的初始化工作")def tearDown(self) -> None: # 表示该方法没有返回值print("我是tearDown方法,执行测试后的清除工作")# 必须以test开头的测试方法才能被执行。

2024-09-27 13:51:19 337

原创 Unittest(1):unittest单元测试框架简介

unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试使用unittest前需要熟悉该框架的五个概念test_case :一个完整的测试单元,执行该测试单元可以完成对某一个问题的验证,完整体现在测试前环境准备(setUp),执行测试代码(run),以及测试后环境还原(tearDown);test_suite :多个测试用例的集合,测试套件或测试计划。

2024-09-27 13:50:20 196

原创 Tomcat:windows_下载并配置Tomcat

如果双击start.bat文件出现dos窗口闪退的情况,可能是tomcat默认端口8080被占用;参考博客:https://www.cnblogs.com/YouJeffrey/p/16182433.html。TOMCAT_HOME=D:\apache-tomcat-9.0.29 # tomcat的解压路径。CATALINA_HOME=D:\apache-tomcat-9.0.29 # tomcat的解压路径。,不需要每次都点 startup.bat ,还是通过命令行的方式来启动。

2024-09-24 14:59:25 362

原创 SQL语句基础练习

select students.class_id,students.score,classes.name from students right join classes on students.id=classes.id order by students.score 右连接 返回右表的行。select score from students where score > (select avg(score) from students) AVG()指定列下的平均值 求分数列下大于分数的平均值的行。

2024-09-24 14:58:29 451

原创 Selenium(20):传入webdriver驱动的新方法 Service()函数;以前的executable_path报警告,即将弃用

举例:webdriver.Chrome(executable_path=driver_path);看提示警告,提示该方法即将被弃用;1、首先导入selenium的包:from selenium.webdriver.chrome.service import Service。# 传入webdriver驱动的新方法 Service()函数;以前的报警告,即将弃用。3、使用Service()方法传入驱动包,执行后就不会报警告了。2、使用Service()方法;

2024-09-24 14:55:39 319

原创 Selenium(19):取消chrome受自动控制提示

chrome_options.add_experimental_option("excludeSwitches", ['enable-automation']) # 取消chrome受自动控制提示。chrome_options.add_experimental_option('useAutomationExtension', False) # 取消chrome受自动控制提示。chrome_options.add_argument('lang=zh_CN.UTF-8') # 设置默认编码为utf-8。

2024-09-24 14:55:22 466

原创 Selenium(18):通过cookie绕过验证码的操作

driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。current_path = os.path.dirname(os.path.abspath(__file__)) # 当前路径。

2024-09-24 14:55:04 607

原创 Selenium(17):浏览器多窗口操作

driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。driver.find_element(By.XPATH,'//a[text()="脱贫攻坚"]').click()driver.find_element(By.XPATH,'//a[text()="脱贫攻坚"]').click()driver.switch_to.window( new_handle_01 ) # 切换到新的窗口句柄。

2024-09-24 14:54:46 565

原创 Selenium(16):通过调用javascript进行操作

driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。pages_path = os.path.join(current_path,'../pages/element_samples.html') # 本地网页路径。driver.get('file://%s'%pages_path) # 本地网页打开file:// 打开部署好的站点http://另一种是在某个已经定位的元素上执行js。

2024-09-24 14:54:25 430

空空如也

空空如也

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

TA关注的人

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