自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 问答 (1)
  • 收藏
  • 关注

原创 闭包 与 装饰器

闭包:函数内部定义函数,内部函数可以使用外部函数的变量# def outer():# def inner():# print('内部函数')# return inner# i = outer()# print(i) # i 返回的是内部函数的地址# i() #i() 调用了内部函数# outer()() # 返回打印值内部函数可以使用外部函数的参数# 内部函数可以使用外部函数的参数# def outer(x,y):# def inner(

2021-11-26 18:25:07 99

原创 接口自动化处理 cookies,token,session

cookies 和session因为http 是无链接,而cookies 可以用来保存登陆的状态,在web 端的浏览器中,但是不安全,为了安全,就把一些敏感信息保存在session中,而session是保存在服务器端,session 里面记录了客户的账号和密码。代码实现拿到cookie 和session#-------------cookies方式登录----------------import requestsimport jsonHOST = *******'#登录操作def login

2021-10-19 17:45:52 395

原创 自动执行自动化代码

命名一个run.bat 文件cd./testcasepytest -s --alluredir …/report/tmp --clean-alluredirallure serve …/report/tmp

2021-10-13 11:20:08 171

原创 pytest框架基础

一. pytest 单元测试框架(1)什么是单元测试框架:针对软件最小单位(函数,方法)进行正确性的检查测试(2)单元测试框架Java:junit 和testNGpython:unittest 和pytest二, pytest 简介1,pytest 有很多非常强大的插件,并且这些插件能实现很多的实用的操作pytestpytest-html (生成html格式的自动化测试报告)pytest-xdist 测试用例分布式执行,多cpu分发pytest-ordering 用于改变测试用例的

2021-10-11 16:08:25 118

原创 json 的序列化和反序列化

在json 库中,序列化和反序列化的处理分两种:一种是对具体列表数据的处理,一种是对文件内容的处理对数据的处理import jsonresult = { "name":"runoob", "alexa":10000, "site":"m.runoob.com" }res = json.dumps(result,sort_keys=True,indent=4,separators=(',',':')) # 将python 字典数据类型转化为json 字符串sul = json.loads(res)

2021-10-08 21:37:34 255

原创 python对excel的处理

v2‘’’函数名:def get_excel_data()版本:v2.0函数功能: 1- 获取请求的body与预期的响应结果!具体方案: 1- 导入对应的excel读取的库 xlrd 处理xxx.xls 格式 ; openpyxl xx.xlxs 2- 把excel文件读取到内存 excel对象 3- 找到你需要操作的sheet 4- 读取对应的行与列数据(单元格数据)'''import xlrddef get_excel_data(excelD

2021-10-07 15:56:38 213

转载 python中logging日志模块详解

博客转自:https://www.cnblogs.com/CJOKER/p/8295272.htmllogging 模块 ,可以更好的控制输出在哪个地方,怎么输出记忆控制消息级别来过滤不需要的信息日志级别import logging # 引入logging模块# 将信息打印到控制台上# 将信息打印到控制台logging.debug('哈哈')logging.info('嘿嘿')logging.warning('牛逼')logging.error('比牛更牛')logging.criti

2021-09-02 18:28:50 192 1

原创 web 页面多窗口切换

‘’’思路: current_window_handle 是获取当前的窗口字符串window_handles 是当前所有窗口字符串,且为列表通过比较发现新窗口的句柄为handles[1]‘’’from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()sleep(3)driver.get('https://www.hao123.com/')# 获取当前窗口句柄current_handle

2021-08-30 17:07:05 215

转载 Selenium通过pywin32上传文件

对于文件上传,首先,我们要区分出上传按钮的种类,大体上可以分为两种,一种是input框,另外一种标签是非input框,就比较复杂,可以通过pywin32库,js、flash等实现。若一、安装pywin32库可以在pycharm terminal 输入安装语句,语句是啥忘记了也可以直接在pycharm安装,具体方法: File–>New Projects Settings -->Setting fornew projects -->Python Interpreter,选择当前在

2021-08-30 16:06:56 584

转载 ActionChains 的常用方法

ActionChains 的常用方法from selenium.webdriver import ActionChains #导入类click(on_element=None) ——单击鼠标左键click_and_hold(on_element=None) ——点击鼠标左键,不松开context_click(on_element=None) ——点击鼠标右键double_click(on_element=None) ——双击鼠标左键drag_and_drop(source, target) ——

2021-08-28 15:37:48 285

原创 selenium web 自动化原理

selenium web 自动化测试原理一,webUI自动化的原理:脚本通过webdriver 驱动调用浏览器,浏览器测试产品。浏览器将结果返回给驱动,驱动返回给脚本python–》--selenium–>>driver–>>浏览器二,webUI 怎么做了解前端:html —元素内容,UI 自动化测试必须了解css–样式,元素的布局js(java script)–>动作,行为—特殊场景三,前端的元素<标签名>文本内容</标签名>

2021-08-26 11:38:47 113

原创 CSS 定位方法

css 定位的优点:执行效率比xpatch 快一点语法比xpatch 稍微简洁点很多复杂的css会比xpatch 可读性差css 语法:#表示id 选择器. 表示class 选择器, 不能有空格‘> ’表示子元素,层级一个空格也表示子元素,但是是所有的后代子元素,相当于xpath 中的相对路径cas 的语法很多,可以查看 https://www.runoob.com/cssref/css-selectors.html如果这个元素没有你想要的属性,可以使用其他属性定位inp

2021-08-26 11:28:11 170

原创 xpath 定位元素

xpath 定位元素'''xpath 使用路径表达式来选取xml 或者html 中的节点或节点集标准语法如下://tagname[@attribute='value'] //选取后代节点 tagname 节点标签名 attribute 节点属性 value 属性值xpath 遍历所有元素,'''#注意:通过ctrl+F,才会有高亮from selenium import webdriverimport timedriver = webdriver.Chrome()url

2021-08-11 18:25:39 262

原创 webdriver 常见的操作方法

常见的操作:click 单击元素send_keys 对文本框输入内容clear 清除文本框的内容driver.title 获取页面的标题driver.current_url 获取URLele=driver.find_element_by_css_selector(’***’)print(ele.text)取标签对之间的文本信息----常用***注:***:text: 标签元素如果不展示在页面上., 获取结果为空标签对中间没有值,获取结果为空如 input 标签之类的标签,获取结果为

2021-08-10 17:10:34 342

原创 selenium 的元素等待

隐式等待隐形等待设置一个超时时间,再这个时间内,不断的寻找元素(每隔0.5s找一次)若超时仍未找到则抛出timeout 异常,若在时间内找到了,则继续向下执行代码优点使用简单,一次添加,终身有效。一般在创建driver之后设置作用域: 添加隐式等待之后的元素查找缺点无法指定元素进行等待需要等页面全部加载完成,相对而言浪费时间from selenium import webdriverdriver = webdriver.Chrome()#隐性等待driver.im

2021-08-10 12:04:29 247

原创 Selenium 的元素定位

一,UI自动化的操作流程选择界面元素:根据元素的特征:id,name, class_name, tag_name, link_text(根据超链接的文本定位),partial_link_text(根据超链接文本模糊匹配定位)根据元素特征和关系:css, xpath操作界面元素:输入操作:点击,输入文字,拖拽等输出操作:获取元素的各种属性根据界面上获取的数据进行分析和处理二,元素定位大法# id 定位,,name ,class_name 都类似driver.find_eleme

2021-08-10 11:10:38 98

原创 pytest 框架下的接口自动化

一,@pytest.mark.parametrize()基本用法@pytest.mark.parametrize(args_name,args_value)args_name:参数名args_value:参数值,支持{},[],(),{}第一种方式:import pytestclass TestApi: @pytest.mark.parametrize('args',['变量1','变量2','变量3']) def test_01(self,args): pr

2021-08-08 20:54:57 434 1

原创 pytest 框架实现一些前后置的处理

#pytest 框架实现一些前后置的处理,常用的三种方法一,setup/teardownsetup /teardown 在每个用例前后都会执行import pytestclass TestLogin: #在所有的用例之前只执行一次 def setup_class(self): print('在每个类执行钱的初始化的工作:例如:创建日志对象,创建数据库的连接请求对象') #在每条用例之前都执行一次 def setup(self): pri

2021-08-05 22:25:53 367

原创 python 实例方法,静态方法,类方法的区别

Python中实例方法,静态方法,类方法的区别犯得上发射点反对法实例方法def add(*args): if len(args)>1: sum = 0 for i in args: #遍历元组set sum+=i return sum pass else: print('至少传入两个参数') return 0def minus(*args):

2021-07-28 22:35:23 99

原创 windows 安装mysql

#官网下载:https://dev.mysql.com/downloads/mysql/C:\Users\SXU8\software\mysql-8.0.25-winx64\bin>#解压下载好的压缩包放到你想要放的目录:#用管理员打开CMD,切换到MySql的解压目录下的bin目录:C:\Users\SXU8\software\mysql-8.0.25-winx64>cd bin#再输入命令mysqld --initialize --console来初始化数据库,并记录红色标注的字符

2021-06-27 23:22:05 73

空空如也

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

TA关注的人

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