- 博客(98)
- 资源 (3)
- 收藏
- 关注
原创 Unittest数据驱动
测试数据与功能代码是要分离开的执行自动化测试的时候,数据驱动框架就从外部根据函数的参数个数,读取一组数据,然后将这组数据,按照函数参数的个数拆分到具体的函数参数上,进行执行。函数执行的次数取决于外部数据的条数,就不用自己写for循环了,只要写数据就行两个广泛应用的数据驱动的框架,一个是ddt,一个是parameterizedddt是unittest中应用,parameterized是pytest中应用。pip3 install ddt@ddt 装饰测试类@data或者@file_data来装饰需要驱动的
2022-07-08 16:20:20
1056
3
原创 Unittest框架
作用:测试用例的管理、运行、编写、输出测试报告等功能。selunium定位方法,页面元素方法.控制浏览器的方法. ----砖瓦unittest ----框架selenium和unittest结合 ,才能造出“高楼大厦”用这个框架可以做ui自动化,接口自动化,app自动化。具体做什么取决于里面的测试用例。框架搭成了里面放什么样的用例就是什么测试。Unittest官方文档环境搭建:不用搭环境,也不用安装,是python自带的,导包
2022-06-16 15:19:43
7260
1
原创 iframe定位、下拉框定位、获取cookie
就是一个页面里嵌套了另外一个页面iframe标签也叫浮动框架标签,iframe标签也是一个比较特殊的框架,可以放在浏览器中的小窗口,可以出现在页面的任何一个位置上,但是整个页面并一定在框架页面上,iframe框架完全是由开发者去定义高度和宽度,在网页中嵌套另外一个网页。这种情况如何去定位?在外面能看到但是定位不到,要先切入到iframe里,然后再iframe里面去定位只是查找范围上的变化切入iframe后正常定位即可既然能切到iframe,那就要能切回去下拉框一般与地址相关的都是下拉框省
2022-06-05 18:10:31
2197
原创 Selenium经典API操作
1.强制等待——sleep(等待时间)time库中的sleep()函数不管怎么样,让等几秒就等几秒真正测试的时候不需要死等,只要页面刷新出元素了就可以往下进行。但是不等直接进行页面定位的话有可能页面没加载完成就去定位了,因为电脑肯定比人要快,所以有可能会页面还没加载完,定位的脚本已经开始执行了,结果发现定位不到元素。这时就要加隐式等待,等页面加载完再去定位。2.隐式等待——implicitly_wait(最大加载时长)页面元素一个都不能少,全都加载完再结束。也可以设置一个最大加载时长,如果时间到了
2022-06-05 14:58:44
1253
原创 UI自动化之Selenium介绍、Selenium定位方法
Selenium库用于web应用程序的测试工具模拟手工操作浏览器,进行自动化测试特点开源免费多浏览器支持 —Chrome、IE、FireFox等多平台支持 — Windows、Linux都支持支持分布式测试(Grid)支持录制回放和脚本生成(IDE)Selenium三剑客WebDriverIDE 支持录制回放和脚本生成Grid 支持分布式测试官方文档https://selenium-python.readthedocs.io/index.htmlhttps://se
2022-06-04 11:04:49
817
2
原创 自动化测试流程
web自动化流程设计1 什么是Web端UI自动化测试通过编写代码用程序模拟Web端的人工操作,进行测试.用以检验软件是否达到需求文档的功能.2.哪些项目适合做UI自动化测试(1) 项目的需求不会频繁变动(2) 页面已经比较稳定(3) 项目的周期比较长(4) 大量的回归测试任务3.web自动化测试流程设计3.1 测试的需求分析和设计3.1.1抽样分析项目自动化测试的可行性3.1.2测试需求分析3.1.3指定测试计划准入准出原则测试范围进度安排人员安排风险.
2022-05-24 14:35:58
232
原创 web前端-HTML,CSS,JavaScript
html是负责网页有什么功能,css是负责网页看着好不好看HTML—超文本标记语言超文本:不止传输文本,还可以传输音频、视频、图片等标记:给内容前后加上标记,怎么渲染内容(举例:< h1>标题< /h1>)HTML文件:XXX.html,静态网页这就是一个HTML文件了↓默认打开是空白的可以给文件中添加内容后再打开< !DOCTYPE html>是说明尖箭头包裹的,就是标签。标签一般都是成对出现的,有头有尾HTML基本结构分为两大部分:hea
2022-05-24 11:18:12
169
原创 python装饰器
自己写装饰器举例1、函数作为参数,传递给另外的函数2、函数的嵌套可以在函数内定义另外一个函数函数中可以调用新定义的函数函数中可以执行传入的函数3、函数内部定义的函数,可以作为返回值a函数作为参数,传递给strong函数。strong函数中给传入的函数增加了一行打印的新功能,又封装成一个新函数,然后把新函数返回到调用的地方,新函数用new_a来保存,然后调用新函数。这时的新函数不但有原来函数的功能,还又增加了新的功能。可以通过这种方法给原有函数增加新功能,还不改写原有函数的代码。可是这
2022-05-23 16:39:32
154
原创 python操作mysql数据库
python操作数据库的过程:创建连接—获取游标—执行命令—关闭游标—关闭连接python访问mysql要用pymysql库pymysql需要安装:pip install pymysql导入pymysql
2022-05-21 16:03:29
23160
7
原创 python基础之logging模块
logging模块logging模块就是处理日志的日志就是程序运行中的信息,保留在文件中logging是内置的,不需要单独安装,可以直接用日志的等级 机制debug: 调试info:信息输出warning:警告error:错误critical:紧急设置到 warning,就会输出其上的warning,error,critical三个基本的log四个组件(类)logger:计量器,日志采集handler:处理器,将日志发送到合适的路径fomatter:格式化器,设定日志格式fil
2022-05-11 16:25:00
2432
2
原创 python基础之Requests库
Requests库Requests库可以帮我们发送http的请求,并处理服务器给我们的响应不只是浏览器可以通过http协议发送网络请求并获取返回的数据,postman,Jmeter,智能手表等都可以python的requests库,也可以通过http协议发送网络请求,并获取返回的数据比urllib库更加简单,使用方便,文档也很全。requests库的官方文档:http://cn.python-requests.org/zh_CN/latest/下载安装requests库pip3 install
2022-04-27 15:12:31
3709
原创 python基础之面向对象的三大特性
面向对象的三大特征——封装、继承、多态封装为什么要封装为了数据的安全性,降低代码的耦合度表现形式将一组具有统一功能和相关的代码,抽象成一个函数或一个类或类的方法三种权限级别为了保护数据的安全性,在定义类的时候具有三种权限级别。分别是公有,私有,保护正常新建一个类,实例化,调用是这样的在这里插入图片描述...
2022-04-25 16:55:29
759
原创 python基础之类的属性&方法、魔术方法&普通方法
类的定义、调用方法、引用属性类的属性和方法类的属性类属性的访问类属性可以直接访问,无需实例化类属性也可以通过实例来访问实际上,所有的实例是共享类属性的类属性的修改修改了类属性后,对应的类属性和实例属性都会被修改类属性的修改,会影响类和所有实例化出来的实例类属性的增加增加了一个类属性后,实例的属性也对应增加实例属性的修改其实art_wang.salary = 6000这句并不是修改了类属性,而是增加了一个实例属性,只不过巧合的是这个实例属性和原来的类属性重名了我在art_
2022-04-18 15:28:14
556
原创 python基础之异常处理、面向对象
异常处理当代码运行出错时,程序会终止。code就不是0了,而是-1或者1,不是正常结束。程序碰到异常又没有捕获到,没有做相应的处理,程序会崩溃。如果不做异常处理,执行到一些容易出错的位置,可能代码出错会导致程序崩溃,控制台打印异常信息如果做了异常处理,只是有异常的代码不执行,对异常处理以外的代码不影响可以在except后面添加异常类型,如果是某种类型的错误,就打印对应的输出信息可以在后面添加else,如果这段代码没有出错,就执行else后面的代码有一些代码是不管代码是否运行出错都要执行
2022-04-14 15:10:41
453
原创 python基础之库&包&模块详解、OS模块
库、包、模块模块 module : 一个 py文件,就是一个模块. 一般由函数 和 类组成.包 package: 多个模块,放在一个文件夹里,就是一个包. 其中必须有一个 _ _ init.py_ _库 :逻辑概念,具有一定的功能. 可以是 模块,也可以是 包.包和文件夹的区别包里面 必须有 _ _ init_ _.pypython只能导入包中的对象, 不能导入directory导入用 import 关键字来导入同目录下导入我先在day8的文件夹下定义一个模块,mo
2022-04-13 15:19:33
854
原创 python基础之拆包、匿名函数、文件的初级应用
拆包定义解压序列,赋值给多个变量。这个序列可以是元组、列表、字典。拆包的过程1、元组拆包如果不知道拆包,获取元素可以这样写用拆包可以这样写。常用的是这样的。元组有一种定义方式是不加括号的元组内有几个值,前面的变量就要写几个,必须是一 一对应的。不能多也不能少。以拆包的形式,为多个变量赋值2、列表拆包列表拆包其实也是一样的3、字典拆包字典拆包默认是拆key的返回多个值的函数,获取返回值进行拆包直接拆包返回值我返回值不加括号,返回的就是元组,那我给它加个中括号呢
2022-04-11 14:31:20
625
原创 python基础之函数介绍&进阶操作、全局变量&局部变量
函数给它一个参数,让它进行各种处理,然后返回一个结果。函数的语法def function_name(): statamentsdef function_name(para): statamentsdef function_name(para): stataments return 结果函数举例——无参数,无返回定义一个函数,在其他地方调用函数嵌套在一个函数中用另外的函数两个函数之间不能互相调用,普通函数不能自己调用自己。不然会死循环。函数举例—
2022-04-10 16:01:40
740
原创 python基础之元组定义&进阶操作、字典定义&进阶操作
元组创建元组把所有的元素放到括号里,就是元组创建空元组如果定义只有一个元素的元组,那么这个元素后面要加一个逗号,告诉它我要定义的是元组创建复杂的元组,括号内可以随便嵌套。当然,如果嵌套的层数多了,可能计算机没有乱自己先乱了。元组打包元组打包是另一种创建元组的方式,不用括号来创建元组。可以看到我创建的时候外面没加括号,结果中自动在两端加上了括号。访问元组元素访问my_t3这个元组中索引为2的元素。访问元组中某个元素里面的元素,比如我想访问my_t3中的345这个元素其实就是
2022-04-07 16:33:40
756
原创 python基础之字符串定义&常见操作、列表定义&进阶操作
字符串创建字符串创建字符串有三种方式:’ ’ ," " , ‘’’ ‘’’三引号允许换行,并且可以保留换行引用——访问字符串中的字符引用是访问字符串中的一个字符不能超出字符串的长度,否则会报错切片切片就是访问字符串中大于等于1个字符切片的语法:[开始:结束:步长] 左闭右开,三个参数中至少有一个就可以只有开始:从3开始,访问3以及3以后只有结尾:从头开始,访问到第三个结束。但是不包含第三个,因为左闭右开两个参数都写:1—3,从1开始,a是0,所以不含a加上步长:1
2022-04-05 23:26:14
1350
原创 python基础之选择结构,循环结构
顺序结构从上到下一直运行,一行结束再运行下一行选择结构if expression: statementsif expression: # 条件满足if statements of ifelse: # 条件满足else statements of esleif expression: statements of ifelif: # 条件满足elif statements of elifesle: statements of else
2022-04-05 15:32:13
945
原创 python基础之数据类型&类型转换、运算符
数据类型不同的数据类型可以进行的操作是不一样的python中数据类型有6种,分别是数字,字符串,列表,元祖,字典,集合数字数字类型包括整型int,浮点型float,复数complex三种int,整数float,小数complex,复数不怎么用字符串定义字符串可以用单引号’ ‘,双引号" ",三引号’’’ ‘’'定义用单引号和双引号定义是一样的,只是有时候会有嵌套的情况出现用三引号定义的字符串可以换行字符串的切片切片其实就是把这个字符串截断,下标从0开始,左闭右开,包头
2022-04-05 14:20:45
1160
原创 python介绍&环境搭建、变量&输入输出
python介绍python语言现在是世界上最流行的编程语言,从2021年11月开始,python语言的排名从第二名跳到了第一名。原因是python方便、好用、简单,功能强大还好学。python可以做网络爬虫,自动化办公,数据分析,大数据,人工智能等等。搭建python环境要搭建python环境,首先要下载pythonpython官网:https://www.python.org现在一般都用python3,不要下载python2了。安装好python后,可以cmd看一下,显示版本号了就说明安装
2022-03-29 17:17:40
1240
1
原创 Java基础中的基础
Java简介jdk:Java开发工具包jre:Java运行环境如果想要运行java程序,只需要jre。很多java开发的工具,里边自带jre。Java,原来是sun公司开发,后来被oracle公司收购。java是跨平台的,一处编译,到处运行,是一种高级语言。Eclipse环境搭建可以直接在官网下载,也可以在镜像站下载。...
2022-03-21 14:28:53
265
原创 Jmeter中的几种协议
FTPftp的默认端口号是21,22是ssh,23是Telnet,3306是MySQL数据库,1543是seqserver,80是http,443是https,8080是TomcatFTP即File Transfer Protocol,文件传输协议,就是用来传输文件的在jmeter中使用如果要上传非文本文件,要勾选使用二进制模式也可以直接把本地文件内容上传到文件里webServicejmeter默认不支持webService了,需要下载插件但是插件中是不支持中文的,遇见中文就乱码所以
2022-03-01 10:19:13
3273
原创 jmeter脚本写个小demo(html论坛自动发帖、json龙果学院-前后端分离)
bbs论坛实现登录、进入每个模块、在每一个模块发帖,有二级页面的在二级页面发帖,随机在某个模块发帖。jmeter新建一个线程组,添加cookie管理器,请求默认值,请求,察看结果树添加好默认值(ip和路径)添加请求(要先进入首页,然后登录,登录后进入首页)首页直接用请求默认值就行,不用设置登录请求需要在浏览器中F12抓包,找到接口和传参(登录成功后F12会自动跳转到下一页的接口,所以要设置持续记录所有接口)把接口中抓出来的路径和请求参数粘贴到jmeter中登录后首页也不用设置执行一下
2022-02-23 16:17:18
7284
原创 jmeter脚本增强
插件管理器jmeter-plugins-manager-1.6.jar插件我上传到资源了把jar包放到jmeter安装目录下lib下的ext文件夹里,然后重启jmeter就可以了重启完jmeter之后,圈起来的位置就有了这个插件,然后需要什么插件直接在这里搜索就可以了圈红的代表已安装的插件圈黄的代表可以安装的插件圈蓝的代表已安装过可以升级的插件参数化多种方式可实现参数化。用数据库也可以做参数化,其实就是用jmeter连接数据库,然后把数据库中的数据读取出来。上一篇文章写过注册,这
2022-02-23 11:26:31
895
原创 Jmeter基础使用
运行Jmeter需要Java环境,装jdk环境变量配置jmeter_homeJmeter目录backups:备份bin:执行文件,windows系统中执行jmeter.bat,linux系统中执行jmeter.sh或jmeterbin目录中的jmeter.properties是配置文件,其他文件暂时用不到docs:接口文档,jmeter这个工具本身的接口extras:用来做持续集成的lib:依赖的其他文件lib下的junit是用来做单元测试的,ext是核心jar包,插件都是放在ext下面
2022-02-18 14:28:25
6359
原创 loadrunner11基础使用
装好Loadrunner后要用管理员权限打开,不然可能会报错win10可以装lr12和12.5,但是无法破解,最大并发50人,还只有7天试用期,7天过了要重新装loadrunner11中主要就是三个模块:VuGen:创建/编辑脚本,脚本录制和脚本增强Controller:运行负载测试,性能场景的设计和性能指标的分析及指标监控Analysis:分析测试结果,性能结果分析,出报告VuGen:创建/编辑脚本主要就是页面中四个按钮,主要用前两个按钮,新建脚本和打开现有脚本。点击新建脚本,选择Web
2022-02-15 14:23:52
10988
原创 性能测试基础
性能领域与功能完全不同,基本没什么关系,没什么逆向思维,分支,方法,策略,都没有。只需关注一点,就是服务器的表现可以把服务器想象成一个心脏,心脏如果停了,这个人就挂了让一个大心脏剧烈跳动,就要让它跑长跑,剧烈冲刺或者施压,给这个人身上成吨的压东西,直到承受不住为止。所以我们要对这个场景进行模拟,进行场景的还原,不停地刺激它,通过各种各样的方式去刺激它。对它进行刺激的方式有三种:压力,负载,稳定性压力的刺激就是一瞬间的刺激,负载就是循序渐进持续的进行刺激(就是凌迟处死的感觉),稳定性就是当它快要挂
2022-01-18 14:00:25
542
1
原创 初级测试面试常问
1.给你个软件 让你设计部分功能的测试用例2.get和post的区别3.数据库增删改查及高级查询4.http和https的区别(协议)5.cookie、token、session区别6.讲一下你上一份工作的项目,你负责的部分,测试过程中让你印象最深的bug7.fiddler怎么抓取https的包和手机App的包(怎么设置)……...
2021-09-27 11:11:33
105
原创 Linux
虚拟机的作用我们可以在虚拟机中打开若干个系统,比如Windows,Mac,Linux,主流就这三种系统,还有系统的分支Linux是开源的,广泛应用于各种服务器当今主流三大操作系统是Windows, macOS, Linux。普通用户一般是选择Windows或macOS, Linux主要是占据服务器领域市场。Windows:经济适用,普适性较高。macOS:综合了 Windows 和 Linux,图形界面绚丽细致,自带类 Unix 命令行。Linux:极客专用,高深、只可远观不可亵玩。服务器操作
2021-09-26 16:30:47
96
原创 接口测试基础
如果前端和后台都可以实现的某个功能,优先前端去做。因为前端不需要调用服务器,后台需要调用服务器。需要增删改差数据时,都是后端操作。
2021-06-10 20:47:51
198
5
原创 MySQL高级操作
事务所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转帐工作:从一个帐号扣款并使另一个帐 号增款,这两个操作要么都执行,要么都不执行。所以,应该把他们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性事务广泛的运用于订单系统、银行系统等多种场景例如:A用户和B用户是银行的储户,现在A要给B转账500元,那么需要做以下几件事:检查A的账户余额>500元;A 账户中扣除500元;B 账户中增加500元;事
2021-05-01 17:01:26
84
原创 MySQL之多表查询
接上一篇文章中student表查询男生总人数select count() from students where sex = ‘男’;select sex,count() from students group by sex having sex = ‘男’;(having是固定语法,分组后进行筛选)分页查询查询前三行学生信息select * from students limit 0,3;数据库中支持索引,索引都是从0开始的,拿到数据是0,1,2。0,3代表左闭右开,就是从0开始算,3不算
2021-04-28 14:35:35
257
原创 MySQL之增删改查(以查为主)
创建表create table 表名(字段 类型 约束,字段 类型…);create 创建一个表名是wj_39的表wj_39这个表里边有name和age两个字段name的字段是占10个字节的字符串类型age字段是不能为负数的整数类型unsigned是一个约束,不能为负的约束里边的括号 逗号 分号等符号都必须是英文的符号。注释快捷键“ctrl+?”,注释是解释这段代码的内容删除表把表名为wj_39的表删掉DROP TABLE wj_39;如果这个表存在就删掉,如果不存在就不删DRO
2021-04-27 16:46:03
176
原创 MySQL工具介绍及环境搭建
下载https://dev.mysql.com/downloads/mysql/是ZIP格式,所有文件全在压缩包里,里边有大量文档,需要自己配置一般下MSI格式就可以,直接下一步就行,不需要自己去配置https://dev.mysql.com/downloads/windows/installer/8.0.html64位不支持32位,32位支持64位,所以下载32位就可以工作中基本不需要操作MySQL服务器,只需要操作客户端就行工作中有服务器账号就行(需要IP,端口,用户名,密码),有这些就可以
2021-04-25 10:47:23
129
原创 初级测试知识点汇总
一、测试基础1.软件测试的定义1983年,IEEE提出的软件工程标准术语,软件测试定义如下:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”。图示:缺点:只强调动态测试,忽略了静态测试。G…J.Myers认为:1)程序测试是为了发现错误而执行程序的过程;2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;3)成功的测试是发现了至今为止尚未发现的错误的测试。 缺点:只强调了了发现错误,而忽视了缺陷。
2021-04-23 16:06:28
477
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人