自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Python+Selenium自动化测试(六):测试驱动TDD

文章目录一、为什么要使用ddt模块二、ddt模块三、CSV文件处理四、xlsx文件处理一、为什么要使用ddt模块测试驱动开发模式,要求开发在写业务代码的时候,先写出测试代码,同时单元测试例子决定了如何来写产品的代码,并且不断的成功的执行编写的所有的单元测试例子,不断的完善单元测试例子进而完善产品代码, 这样随着功能的开发完成,测试代码也会对应的完成, 很显然,这是一个全新的开发模式, 在一定程度上,可以完全的提高软件的质量,以及开发可以对自己写的代码进行一个全面的评估和测试。TDD 模式是一个很大的概

2021-08-31 23:31:19 518

转载 Python+Selenium自动化测试(五):Page Object模式

文章目录一、Page Object模式定义二、POM实例三、小结一、Page Object模式定义什么是Page ObjectModel模式Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class。class的内容主要包括属性和方法,属性不难理解,就是这个页面中的元素对象,比如输入用户名的输入框,输入登陆密码的输入框,登陆按钮,这个页面的url等,而方法,主要是指这个页面可以提供的具体功能为什么选择Page ObjectModel模式简单代码:from s

2021-08-31 23:07:40 539

原创 Python+Selenium自动化测试(四):unittest

文章目录一、unittest之执行顺序一、unittest之装饰器一、unittest之断言一、unittest之模块导入一、unittest之批量执行一、unittest之HTMLTestRunner测试报告一、unittest之执行顺序举例:import unittestclass Test(unittest.TestCase): def setUp(self): print("start!") def tearDown(self): print

2021-08-31 00:22:16 337

原创 Python+Selenium自动化测试(三):页面操作

文章目录1.浏览器操作2.鼠标事件3.键盘事件4.获取页面信息5.设置等待时间6.表单/窗口/警告窗操作7.文件上传8.验证码处理9.JS处理滚动条10.元素定位1.浏览器操作driver.maximize_window() #将浏览器最大化显示driver.set_window_size(480, 800) #设置浏览器宽480、高800窗口显示driver.back() #浏览器后退driver.forward() #浏览器前进driver.refresh() #刷新当前页面driver.

2021-08-28 00:41:49 427

原创 Python+Selenium自动化测试(一):开源测试项目搭建(基于macOS M1)

文章目录一、环境配置1.JDK环境配置2.Mysql环境配置3.Tomcat环境配置二、安装项目三、实战演练一、环境配置1.JDK环境配置①JDK:下载地址②安装:默认-添加path③校验:java -version:出现版本号即可2.Mysql环境配置①Mysql:下载地址②安装:输入root密码③mysql配置:(1)根目录输入:sudo vim ~/.bash_profile(2)输入:export PATH=$PATH:/usr/local/mysql/bin(3)按E

2021-08-24 01:33:51 337

原创 Mysql:从入门到精通

一、Mysql基础二、Mysql查询三、Mysql进阶

2021-08-16 22:59:47 93

原创 网络传输知识:WebSocket协议详解

一、WebSocket与HTTPWebSocket是HTML5出的协议,也就是说HTTP协议没有变化,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocket 其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以通过这样一张图理解有交集,但是并不是全部。二、HTTP瓶颈一条连接上只可以发送一个

2021-08-15 21:10:11 1373

原创 网络传输知识:HTTPS协议详解

背景:HTTP协议由于是明文传送,所以存在三大风险:1、被窃听的风险:第三方可以截获并查看你的内容2、被篡改的危险:第三方可以截获并修改你的内容3、被冒充的风险:第三方可以伪装成通信方与你通信HTTP因为存在以上三大安全风险,所以才有了HTTPS的出现。HTTPS涉及到了很多概念,比如SSL/TLS,数字证书、数字签名、加密、认证、公钥和私钥等。对称加密采用单钥密码系统的加密算法,同一个秘钥可以同时用作信息的加密和解密,这种加密方法就成为对称加密,也称为单秘钥加密。对称加密的秘钥只有一个,加

2021-08-11 21:48:07 410

原创 网络传输知识:HTTP协议

计算机网络体系结构的通信协议:1.物理层:以太网、调制调节器、电力线通信、SONET/SDH、光导纤维、同轴电缆、双绞线等。2.数据链路层:Wi-Fi(IEEE 802.11)、WiMAX(IEEE 802.16)、ATM、令牌环、PPP、L2TP、PPTP等3.网络层协议:IP(IPv4、IPv6)、ICMP、ICMPv6、IGMP、IS-IS、IPsec、ARP、RAPP等4.传输层协议:TCP、UDP、TLS、DCCP、SCTP、RSVP、OSPF等5.应用层协议:DNS、FTP、Gophe

2021-08-03 22:42:58 1356

转载 JetBrains全家桶安装配置:基于macOS M1

一、JetBrains全家桶官网下载地址:JetBrains官网安装步骤:①第一步:②第二步:插件市场③第三步:添加第三方插件仓库(https://plugins.zhile.io)④第四步:IDE Eval Reset 插件安装⑤第五步:Auto reset before per restart根据以上步骤,可以破解使用所有软件。时间2021-08-03二、支持产品IntelliJ IDEAAppCodeCLionDataGripGoLandPhpStorm

2021-08-03 22:06:52 1338

原创 网络传输知识:Token

Token的起源基于服务器的验证我们都是知道HTTP协议是无状态的,这种无状态意味着程序需要验证每一次请求,从而辨别客户端的身份。在这之前,程序都是通过在服务端存储的登录信息来辨别请求的。这种方式一般都是通过存储Session来完成。基于服务器验证方式暴露的一些问题1.Seesion:每次认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开销也会不断增加。2.可扩展性:在服务端的内存中使用Seesion存储登录信息,伴随而来的是可扩展性问题。3.CO

2021-07-31 18:13:20 882

原创 网络传输知识:Cookie与Session的区别

一、存储位置不同Cookie的数据信息存放在客户端浏览器上Session的数据信息存放在服务器上二、存储容量不同单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie对于Session并没有上限,但出于对服务器端的性能考虑,Session内不要存放过多的东西,并且设置Session删除机制三、存取方式不同Cookie中只能保管ASCII字符串,需要通过编码的方式存取Unicode字符或者二进制数据,运用cookie难以实现存储略微复杂的信息Session中能够存取任

2021-07-15 22:12:38 99

原创 CSDN文本编辑:文本格式

一、字体<font face="黑体">我是黑体字</font><font face="宋体">我是宋体字</font><font face="微软雅黑">我是微软雅黑字</font><font face="fantasy">我是fantasy字</font><font face="Helvetica">我是Helvetica字</font><font face="STC

2021-07-12 22:35:48 211

原创 网络传输知识:Session

Session的传输步骤:(1)服务器端程序运行的过程中创建session,并且为该session生成唯一的session ID这个ID在随后的请求中会被用来重新获得已经创建的session。在session被创建后,就可以调用session相关的方法向session中增加内容,这些内容只会保存在服务器中。(2)服务器将session ID 发送到客户端(3)当客户端再次发送请求的时候,会将这个session ID带上(4)服务器接收到请求之后就会依据session ID 找到相应的sessio.

2021-07-12 22:00:12 894

原创 网络传输知识:Cookie

1.Cookie的工作原理(1)浏览器端第一次发送请求到服务器端(2)服务器端创建Cookie,该Cookie中包含用户的信息,然后将该Cookie发送到浏览器端(3)浏览器端再次访问服务器端时会携带服务器端创建的Cookie(4)服务器端通过Cookie中携带的数据区分不同的用户2.Cookie的优点(1)简单易用(2)浏览器负责发送数据(3)浏览器自动管理不同的站点3.Cookie的缺点(1)cookie存储在客户端,安全性差,很容易被黑客获取(2)存储容量有限,上限为4KB

2021-07-09 22:59:09 1300

原创 网络传输知识:Cache

缓存的概念:使用缓存Cache的站点会监听客户端向服务器端发出的请求,并根据相应的缓存设置保存服务器端反馈的数据,比如HTML页面,图片等文件,如果用户在此使用相同URL发送请求,请求不会直接发向服务器,而是通过缓存策略先行判断是否能够使用之前已经保存下来的反馈文件,从而降低服务器的负载及提高数据的响应时间。一个优秀的缓存策略可以为网络传输带来以下两方面好处:(1)减少延迟:因为所发出的网页请求是指向更接近客户端的缓存,而不再是源服务器端,因此请求所花费时间更短,这让网站看上去反应更快,提高了用户体

2021-07-07 21:55:54 350

原创 响应报文之状态码

状态码:分类描述:1** :信息,服务器收到请求,需要请求者继续执行操作2** :成功,操作被成功接收并处理3** :重定向,需要进一步的操作以完成请求4** :客户端错误,请求包含语法错误或无法完成请求5** :服务器错误,服务器在处理请求的过程中发生了错误状态码含义100客户必须继续发出请求101客户要求服务器根据请求转换HTTP协议版本200请求已成功,请求所希望的响应头或数据体将随此响应返回201提示知道新文件的URL202接受和处

2021-06-23 23:17:14 274

原创 Python+Selenium自动化测试(二):元素定位

元素的8种定位方式:find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find_element_by_link_text()find_element_by_partial_link_text()find_element_by_xpath()find_element_by_css_selector()1、通过元素的id属性来定位元素——id是唯一标识

2021-06-09 21:17:03 877

原创 Selenium+WebDriver安装配置

一、Selenium下载①cmd下载:pip install seleniumpip show selenium //验证安装是否成功②Pycharm下载二、WebDriver驱动安装1、下载网址:http://npm.taobao.org/mirrors/chromedriver/2、各个谷歌浏览器版本对应的webdriver版本:3、将驱动文件放入python安装目录下4、驱动测试from selenium import webdriverrong = webdr

2021-06-09 20:46:12 282

原创 Python基础:字符串处理

一、字符串的转换:str()函数:仅能转换数据类型,并不会改变数据打印出来的结果。a=1b=str(a)print(type(b))1.给变量a赋值为1的整数;3.将变量a的数据类型转换成字符串,并赋值给b;二、字符串的合并:通过“+”合并,若非字符串,需先将数据类型转换为字符串a=1a=str(a)b="xxx"c=a+bprint(c)结果为:1xxx三、字符串的截取:split(字符/字符串,分割次数):a = "a=abc,b=123,cddd,(1,2)"p

2021-05-27 21:54:54 236

原创 Python基础:函数

一、函数的定义:格式:def 函数名()函数名可以是数字、字母、或者下划线组合而成,但不能以数字开头,冒号以下的代码是函数的主题,换行的缩进表示代码属于该函数def rong(a,b): a=a+1 b=b+2 print(a,b)rong(1,2)# 结果是2,4二、函数的参数①形参def rong(a,b): c=a+b print(c)rong(1,2)# 结果是31、定义一个rong函数,并创建形式参数a和b2、将a+b的结果赋值给

2021-05-12 21:15:14 149

原创 Python基础:数据结构

一、元组1.元组:元组可以由不同的元素组成,字符串、数字或元组,所有元素通过圆括号包含起来,以逗号隔开。元组不可修改,只读!2.单个元素读取示例:a=(1,2,"b",(1,3,"c"))print(a[0],a[-1],a[-1][-1],a[-1][1])# 结果是:1 (1, 3, 'c') c 3注:正序0开始,倒序-1开始3.多个元素读取示例:a=(1,2,"b",(1,3,"c"))print(a[0:4],a[::-1],a[1:3])#结果为:(1, 2, 'b', (

2021-04-28 20:51:10 63

原创 Python基础:变量与运算

一、变量1.变量:可以由字母、数字或者下划线任意组合而成,唯一的约束就是变量的第一个字符必须是字符或者下划线,而不可以是数字。例:a = 1a_1 = 1_b = 12.全局变量与局部变量:全局变量对整个文件产生作用,直到程序结束才回被回收,而局部变量只对一部分代码产生作用,一旦这部分代码结束,这个变量就会被回收。2.1局部变量举例:def d(): a = 1 print(a)if__name__=="__main__" d()#1.定义一个d函数2.将变量a赋值为13

2021-04-26 22:12:26 1069 1

原创 Python与Pycharm安装配置

一、Python安装配置:1.官网下载:https://www.python.org/downloads/2.选择Windows:

2021-04-20 23:23:06 225

空空如也

空空如也

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

TA关注的人

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