- 博客(48)
- 收藏
- 关注
原创 KeyError: ‘xxx‘报错
以上是函数是return的值是字典,但字典中没有那个“键”,会报错。解决方法为r.setdefault(‘smscode’, 0):设定这个键的默认值。
2020-09-27 16:45:58
6783
2
转载 requests 数据库参数化
一、requests接口自动化-数据库参数化数据库参数化的场景部分接口,参数其他方式获取不到,可以去数据库去获取,如手机验证码安装pymysql-==================================================-二、配置文件def sql_conf():# 定义数据库的配置host=‘127.0.0.1’user=‘root’password=‘123456’database=‘employees’port=3306charset=‘utf8’
2020-09-02 13:59:14
368
原创 Appium 定位元素
一、界面元素查看工具1.uiautomateviewer它在SDK目录目录 的 tools\bin 目录中2.Appium Inspector
2020-08-26 13:21:44
204
原创 Appuim 示例代码
from appium import webdriverfrom appium.webdriver.extensions.android.nativekey import AndroidKeydesired_caps = {‘platformName’: ‘Android’, # 被测手机是安卓‘platformVersion’: ‘8’, # 手机安卓版本‘deviceName’: ‘xxx’, # 设备名,安卓手机可以随意填写‘appPackage’: ‘tv.danmaku.bili’,
2020-08-26 12:47:29
243
原创 Appium 安装自动化环境
一、安装client编程库因为用Python语言开发,所以当然是用pip安装,如下pip install appium-python-client-=======================================================-二、安装Appium Server点击安装包一路下一步-=======================================================-三、安装JDK点击安装包一路下一步-===========
2020-08-26 12:16:47
185
原创 requests 的session机制
requests库给我们提供一个 Session 类 。通过这个类,无需我们操心, requests库自动帮我们保存服务端返回的 cookie数据, HTTP请求自动 在消息头中放入 cookie 数据。
2020-08-25 21:25:49
446
原创 requests拉取响应消息
一、检查响应状态码通过.status_code来获取响应状态码-====================================================-二、检查响应的消息头注意:如果要完全转换为字典,可以这么print(dict(response.headers))-====================================================-三、检查响应的消息体1.要获取响应的消息体的文本内容,直接通过response对象 的 text
2020-08-25 17:34:02
382
原创 requests构建API请求
一、构建URL参数把url参数传递给params里-===================================================-二、构建请求消息头把消息头的数据传递给headers里-===================================================-三、构建请求消息体Web API接口中,消息体基本都是文本,文本的格式主要是这3种: urlencoded ,json , XML。1.xml格式消息体存放在data里如
2020-08-25 12:15:24
524
原创 fiddler抓包
一、设置过滤-=====================================================-二、requests设置fiddler代理import requestsproxies = {‘http’: ‘http://127.0.0.1:8888’,‘https’: ‘http://127.0.0.1:8888’,}response = requests.get(‘http://www.baidu.com/’,proxies=proxies)print(re
2020-08-24 22:34:23
132
原创 http协议基础
一、HTTP协议简介HTTP 有好几个版本,包括: 0.9、1.0、1.1、2,当前最广泛使用的是 HTTP/1.1 版本。HTTP 协议最大的特点是 通讯双方 分为 客户端 和 服务端 。由于 目前 HTTP是基于 TCP 协议的, 所以要进行通讯,客户端 必须先 和服务端 创建 TCP 连接。而且 HTTP 双方的信息交互,必须是这样一种方式:客户端 先发送 http请求(request)给 服务端然后服务端 发送 http响应(response)给 客户端-===============
2020-08-24 18:08:51
240
原创 pytest数据驱动 与 调试
一、数据驱动import pytestfrom lib.weblogin import loginAndCheckclass Test_哔哩登陆:@pytest.mark.parametrize(‘username, password, expectedalert’, [(None, ‘5465468’, {‘请输入注册时用的邮箱或者手机号呀’:’’}),(‘KKC12345’, None, {’’:‘喵,你没输入密码么?’}),(None, None, {‘请输入注册时用的邮箱或者手机号呀’
2020-08-24 14:33:08
306
原创 pytest实战框架 示例代码
一、lib里的函数from selenium import webdriverfrom time import sleepdef loginAndCheck(username=None, passwd=None):driver = webdriver.Chrome(r’d:\Chromedriver.exe’)driver.implicitly_wait(5)driver.get('https://passport.bilibili.com/login')if username is not
2020-08-24 12:47:14
645
原创 pytest 挑选用例执行
一、指定一个模块可以像这样只挑选一个模块执行pytest cases\登录\test_错误登录.py-======================================================================-二、指定目录可以像这样只挑选一个目录执行pytest cases也可以指定多个目录pytest cases1 cases2\登录-===========================================================
2020-08-20 14:37:02
1322
原创 pytest 初始化清除功能
一模块级别def setup_module():print(’\n *** 初始化-模块 ***’)def teardown_module():print(’\n *** 清除-模块 ***’)放在用例 类 的上方,如-======================================================================-二、类级别setup_class 和 teardown_class 类方法,如-=====================
2020-08-19 21:08:46
914
原创 pytest安装 与 基本操作
一、安装直接执行 如下命令即可安装 pytestpip install pytest我们还需要产生测试报表,所以要安装一个第三方插件 pytest-html ,执行如下命令安装pip install pytest-html-======================================================================-二、用例写法格式首先,我们编写的测试用例代码文件, 必须以 test_ 开头,或者以 _test 结尾比如,我们创建一个 文件名为
2020-08-17 17:24:41
1612
1
原创 seleuinm的Xpath选择元素
一、Xpath语法,(绝对路径)xpath 语法中,整个HTML文档根节点用’/‘表示,如果我们想选择的是根节点下面的html节点,则可以在搜索框输入/html如果输入下面的表达式/html/body/div这个表达式表示选择html下面的body下面的div元素。注意 / 有点像 CSS中的 > , 表示直接子节点关系。代码表达式如下:driver.find_elements_by_xpath(‘/html/body/div’)-==========================
2020-08-16 18:46:47
627
原创 selenium的弹出框处理
一、Alert 类型弹框selenium提供如下方法进行操作:driver.switch_to.alert.accept()注意:如果我们不去点击它,页面的其它元素是不能操作的。 {: .notice–info}如果程序要获取弹出对话框中的信息内容, 可以通过 如下代码driver.switch_to.alert.text示例代码如下:from selenium import webdriverdriver = webdriver.Chrome()driver.implicitly_wa
2020-08-15 11:47:54
6008
2
原创 selenium选择框
一、radio框radio框选择选项,直接用WebElement的click方法,模拟用户点击就可以了。-================================================================================-二、checkbox框我们的思路可以是这样:先把 已经选中的选项全部点击一下,确保都是未选状态再点击 小雷老师示例代码~# 先把 已经选中的选项全部点击一下elements = wd.find_elements_by_cs
2020-08-13 20:19:58
507
原创 seleuinm的frame切换/窗口切换
一、iframe 或 frame切换1.使用 WebDriver 对象的 switch_to 属性,像这样driver.switch_to.frame(frame_reference)其中, frame_reference 可以是 frame 元素的属性 name 或者 ID 。比如这里,就可以填写 iframe元素的id ‘frame1’ 或者 name属性值 ‘innerFrame’。像这样driver.switch_to.frame(‘frame1’)或者driver.switch_t
2020-08-12 12:49:23
365
原创 selenium的css表达式选择元素
一、css表达式的写法:find_element_by_css_selector(CSS Selector参数) 或find_elements_by_css_selector(CSS Selector参数)1.找class的属性,使用点“.”表示,如find_element_by_css_selector(’.plan’)2.找id的属性,使用“#”表示,如find_element_by_css_selector(’#su’)-==============================
2020-08-10 12:31:43
734
原创 selenium的一些基本操作
一、使用驱动打开浏览器,并进入百度网址。driver = webdriver.Chrome(r’d:\chromedriver.exe’)driver.implicitly_wait(5) #如果网页服务器没有返回响应,则每隔半秒再拉取一次直至超时5秒报错。driver.get(‘http://www.baidu.com//’)-==============================================================================-二、se
2020-08-08 16:24:46
316
原创 selenium安装库与驱动
1.安装库pip install selenium-==============================================================================-2.安装驱动,如Chrome浏览器为例Chrome 浏览器驱动下载地址:https://chromedriver.storage.googleapis.com/index.html找到对应浏览器版本的编号下载解压,放在可以快捷找到目录下。...
2020-08-08 15:57:01
304
原创 Postman导出、导入接口文件 & 生成代码片段
1.导出-==============================================================================-2.导入-=============================================================================-3.生成接口代码片段
2020-08-06 16:56:25
1930
原创 Postman之随机数
1.方法介绍-===============================================================================-2.例子
2020-08-06 16:34:07
990
原创 Postman参数化测试
1.创建一个txt,写入以下数据。(注意要用英文逗号隔开)2.把接口需要参数化的数值用{{ }}符号内填上txt文件内的标题3.点击该集合的Run,修改以下数值4.修改完毕后点击Run
2020-08-05 15:39:25
203
原创 Postman的tests断言
1.断言的几种方式:-===============================================================================-2.例子:包含某个字符串检验是否等于某个“整个”字符串检验某个字段是否等于某个值(通常使用较多的方法)检验响应头是否包含某个值检验响应时间检验响应状态码(通常使用较多的方法)...
2020-08-04 14:58:27
503
原创 Postman设置变量
1.全局变量,所有环境都可以使用-================================================================================-2.环境变量,根据环境调用变量-===============================================================================-3.Tests设置变量关联jsonData 这个变量名可以跟自己习惯随便取名,如改成:Da
2020-08-02 21:09:04
855
原创 postman接口传参
1.必要条件:2.以下为常用的:3.示例 json格式传参:选择 rawBody是返回信息(主要看)。-===============================================================================-4.示例 表单格式传参:
2020-07-30 20:14:19
1903
原创 flask连接数据库
一.1.在app文件夹下创建libs(库)和spider(爬虫);2.把以下的文件拖入这个两个文件夹下,如图:python3的新版本会自动更改关联这3个文件的导入路径,所以不用手动更改;-===============================================================================-二.创建数据库1.运行Xampp,点击MySQL一栏的Start:2.打开数据库可视化管理工具如:Navicat for MySQL-===
2020-07-21 22:35:05
726
原创 视图函数的参数校验
一.安装wtforms1.在终端上输入:pipenv shell启动环境;2.输入:pipenv install wtforms下载wtforms;-================================================================================-二.验证层1.在app文件夹下新建一个forms文件夹(以后把所有校验文件都放在forms文件夹下);2.在forms文件夹下新建book.py,写入以下代码:Form:需要在wtfo
2020-07-14 21:02:17
204
原创 应用蓝图与视图函数
一.app、蓝图、视图函数框架-================================================================================-二.把视图函数从入口启动文件中分离出来1.在fisher文件下新建文件夹app、web、book.py,写入以下代码:(web文件夹代表的是蓝图)web = Blueprint(): 需要从flask里导入Blueprint;之前的@app.route()改成@web.route();2.之前的fis
2020-07-06 21:27:33
327
原创 web的搜索功能编写
isdigit()函数:检验是否为数字;replace()函数:替换函数,如:replace(’-’, ‘’)把‘-’替换成‘空格’;注:第二if判断含有多个and的复杂判断要放在后面,越复杂的判断越消耗性能,当前面的判断为真时就不会跑后面的判断,节省性能。-================================================================================-2.优化上面的代码首先创建一个helper配置文件,写入以下代码然后...
2020-07-01 22:57:40
1446
原创 flask搭建最基础WEB
@app.route():python简洁的装饰器,用于路由注册;debug=True:服务器自动重启的调试模式,但正式环境不能使用调试模式;host=‘0.0.0.0’:指定本机所有网卡地址,使用任意一个网卡地址都能访问,同时连接了外网;port=81:指定端口为81;-===============================================================================-2.解决正式环境代码的镜像性,使用配置文件:创建一个配置文...
2020-06-29 22:13:32
194
原创 安装pipenv
1.打开终端,cd到项目文件夹;2.输入 pip install pipenv 下载安装;3.绑定项目,给项目安装虚拟环境输入 pipenv install;4.启动虚拟环境输入 pipenv shell;5.查看虚拟环境下有什么包,输入 pip list;6.安装flask输入 pipenv install flask;7.校验是否安装成功,输入 flask 没有报错表示安装成功;8.一些pipenv的管理命令:退出虚拟环境:exit卸载包:pipenv uninstall + 包名查
2020-06-26 20:52:13
808
原创 数据结构
sorted():让列表中的元素从小到大、从a到z、从短到长排列,但不会改变列表本身。reverse:排列顺序相反。例子:1.结果为2.lower():大写转小写。结果为upper():小写转大写。enumerate():列出列表内的每个元素的排列位置。...
2020-06-17 18:04:29
171
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人