自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (4)
  • 收藏
  • 关注

原创 Python3:装饰器 -- @retry

一、@retry()参数:stop=None,stop_max_attempt_number=None,说明:在停止之前尝试的最大次数,默认5次,最后一次如果还是有异常则会抛出异常,停止运行。stop_max_delay=None,说明:从被装饰函数开始执行的时间点开始到函数成功运行结束或失败报错终止的时间点,stop_max_delay毫秒后停止重试,默认100毫秒。stop_func=None,wait=None,wait_fixed=None,说明:设置两次retrying之间停留时长,默

2021-09-26 09:22:15 3616

原创 windows10+python3+flask+tornado+nginx

1、pycharm创建项目:flask_test11.1、安装虚拟环境:py -m venv venv1.2、pip install tornado1.3、pip install flask2、新建app.py# -*- coding: utf-8 -*-import jsonfrom flask import Flask, requestapp = Flask(__name__)@app.route('/calculate', methods=['GET'])def calnu

2021-08-06 14:22:07 544

原创 Pycharm设置模板

新建脚本文件模板:路径:settings - editor - file and code templates - python script编辑内容:# -*- coding: utf-8 -*-# @author: wch# @file: ${NAME}.py# @time: ${DATE} ${TIME}效果:

2021-04-29 10:12:50 529

原创 Postman【持续更新……】

**Postman 汉化版**最新版本:8.2.3下载地址:https://www.postman.com/downloads/https://github.com/hlmd/Postman-cn安装包链接:https://pan.baidu.com/s/1fgV1RQ236mxz7QVgeTH-XQ提取码:s7uy中文包链接:https://pan.baidu.com/s/1DKCimqUWX_w9rMEXVZvocQ提取码:0hom...

2021-04-26 17:02:04 354

原创 Python3:笔记

2021-3-111、’->'的含义:常出现在python函数定义的函数名后面,为函数添加元数据,描述函数的返回类型。def test(a, b) -> int: return a + bsum = test(5, 7)print(sum, type(sum))执行结果:12 <class ‘int’>2、@property:python内置装饰器,负责把一个方法变成属性调用。可以通过创建setter、getter方法一定一个可读写、只读属性。cla

2021-03-11 09:39:44 51

原创 Flyway:数据库版本管理

数据库版本管理:管理并跟踪数据库的变更。数据库版本管理工具:Flyway、Mybatis说明:是独立于数据库的应用。Migrate:Flyway工作流的核心功能,把数据库Schema迁移到最新版本。Metadata:元数据,表,记录版本变更历史以及checksum。表名为flyway_schema_history,首次运行应用活执行对应的Flyway命令时,会自动创建该表,每执行完一个版本脚本都会新插入一条数据对应本次对数据库的更改。Migrations:Flyway在更新数据库时使用的版本脚本。

2021-03-09 13:25:55 323

原创 Python3:datetime模块

datetime 是 Python 中处理日期的标准模块,它提供了 4 种对日期和时间进行处理的类:datetime、date、time 和timedelta。datatime类1、datetime.now(tz=None) 获取当前的日期时间,输出:年、月、日、时、分、秒、微秒。2、datetime.timestamp() 获取以 1970年1月1日为起点记录的秒数。3、datetime.fromtimestamp(tz=None) 使用 timestamp 创建一个 datetime。4、da

2021-02-24 11:43:47 510

原创 Python的内建函数:isinstance

def isinstance(x, A_tuple): # real signature unknown; restored from __doc__ """ Return whether an object is an instance of a class or of a subclass thereof. A tuple, as in ``isinstance(x, (A, B, ...))``, may be given as the target to c

2021-02-24 09:21:28 496

原创 Python3:PyQt5 + QTDesigner + cx_Freeze

环境windows10x64、pycharm、python3.7思路1、使用QTDesigner画界面2、使用cx_Freeze打包下载1、PyQt5_Tools-5.7.dev1-py3-none-any.whl(https://pan.baidu.com/s/1UBGpzSB8S6ep5K5mcnMBCg 提取码:lim0)2、cx_Freeze-6.5.3-cp37-cp37m-win_amd64.whl(https://pan.baidu.com/s/13YOTc17PEG8URWFb

2021-02-20 16:00:58 313

原创 MOCK工具:moco

MOCK工具:moco1、moco下载地址2、安装JDK3、Moco Json Api4、使用1、moco下载地址moco-runner-0.11.0-standalone.jarhttps://pan.baidu.com/s/1vhA5x0hbeGMonz_DhIfWtA 提取码:q1j02、安装JDK下载路径:https://pan.baidu.com/s/1BJrVhj_jYRKQyUBTOk6tKw 提取码:8eem配置环境变量:JAVA_HOME=C:\Program Fil

2021-01-07 15:43:48 280

原创 ADB:adb.exe: failed to check server version: cannot connect to daemon

今日用adb检测移动端时,报错:C:\Users\admin>adb devicesadb server version (31) doesn’t match this client (41); killing…could not read ok from ADB Serverfailed to start daemonadb.exe: failed to check server version: cannot connect to daemon检查我的adb版本:字面意思是我

2020-09-22 10:29:13 12846 1

原创 vue+element UI--Container布局组件

1、基于 webpack 模板生成项目:基于webpack模板生成项目地址2、进入项目根目录安装Element UI:命令:F:>cd F:\VUEworkspace\demo-project3、修改/src/main.js文件,引入element-ui// The Vue build version to load with the `import` command// (runtime-only or standalone) has been set in webpack.base.

2020-09-07 13:42:56 2780

原创 vue:路由

1、进入demo-project项目的src\components目录下新建views目录,并新建Second.vue组件2、编辑First.vue组件,在中增加一段代码:<template> <div class="first-app"> {{msg}} <confirm text="注册" @message="getMessage"></confirm> <p><router-link to="/seco

2020-09-04 17:32:07 75

原创 vue:父子组件通信

页面增加展示文字1、进入demo-project项目的src\components目录下新建views目录,并新建First.vue文件2、进入router目录下的index.js并配置路由路径:3、编辑First.vue文件内容:注意:(1)template 写 html,script写 js,style写样式;(2)一个组件下只能有一个的div;(3)数据要写在return里。4、在浏览器地址栏输入:http://localhost:8080/#/first父子组件通信1、在

2020-09-04 17:07:30 141

原创 vue初始化项目

1、初始化项目:命令:F:\VUEworkspace>vue init webpack demo-project2、创建好的项目目录结构:其中:build—项目构建(webpack)相关代码config—基本配置信息,如端口等node_modules—npm加载的项目依赖模块src—开发目录,包含assets(放置图片),components(组件文件夹),app.vue(项目入口文件),main.js(项目核心文件)static—静态资源目录test—初始测试目录,可以删除i

2020-09-04 11:45:37 1121 1

原创 vue安装与配置

一、安装Node.js1、Node.js 安装包及源码下载地址:https://nodejs.org/en/download/2、配置系统环境变量PATH,添加Node.js的地址。3、验证安装成功C:\Users\admin>node -vC:\Users\admin>node --version二、安装cnpm1、配置淘宝镜像:C:\Users\admin>npm config set registry https://registry.npm.taobao.org2

2020-09-04 11:37:43 453 1

原创 vue-cli

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统:1、通过 @vue/cli 实现的交互式的项目脚手架。2、通过 @vue/cli + @vue/cli-service-global 实现的零配置原型开发。3、一个运行时依赖 (@vue/cli-service):可升级;基于 webpack 构建,并带有合理的默认配置;可以通过项目内的配置文件进行配置;可以通过插件进行扩展。4、一个丰富的官方插件集合,集成了前端生态中最好的工具。5、一套完全图形化的创建和管理 Vue.

2020-09-04 09:43:12 150

原创 webpack项目初始化说明

1、vue+webpack 初始化项目:全局安装vue-cli: cnpm install -g vue-cli创建一个基于webpack模板的新项目: vue init webpack new-project2、填写以下内容:Project name:项目名称,如果不需要就直接回车。注:此处项目名不能使用大写。Project description:项目描述,直接回车。Author :作者。vue build:构建方式,有2个选项,推荐使用选项1选项说明Runtime

2020-09-03 14:53:51 332

原创 Python3:dataclasses

dataclass装饰器python3.7加入新module:dataclasses,就是你定义一个普通类,@dataclasses装饰器帮你生成__repr__、__init__等方法,不需要自己再写一遍了,此装饰器返回的依然是一个class。from dataclasses import dataclass@dataclassclass Dataclass1: name: str = 'python' strong_type: bool = True static_ty

2020-09-02 17:29:05 693

原创 allure安装

下载allureallure是一个通用的测试报告框架下载地址:http://allure.qatools.ru/安装allure将解压后的文件放在指定路径下,并将该路径下的bin目录添加至系统环境变量path中验证:在pycharm中下载allure插件pip install allure-pytest....

2020-08-21 16:17:46 409

原创 初识HttpRunner

下载安装har2case:pip install har2case下载安装httprunner:pip install httprunner续接上一篇使用Fiddler抓取到得接口做一个简单的接口测试执行,初试httprunner的使用https://blog.csdn.net/xiaocai5731/article/details/108146444HttpRunner的测试用例支持两种文件格式:YAML 和 JSON。这里以JSON为例。{ "config": {

2020-08-21 15:02:47 135

原创 抓包工具Fiddler

Fiddler的工作原理所谓抓包其实是网络数据分析的一种通俗且简单的说法。主要是将你的PC、APP客户端发送与接收的数据包进行截获,截获后就可以进行编辑、转存、重发等操作。因为我们日常测试的对象,访问的服务多以http/https为主,截获的也都是http(s)的数据包。抓包工具原理图:本质是在客户端与服务器之间安插一个中间人,所有来往的消息都经过它,它会通过监听固定的端口获取请求和相应的内容。这个中间人就是我们常说的http代理。为什么要抓包呢?1、分析定位问题比如线上金额显示null,到底

2020-08-21 14:36:27 437

原创 Python连接oracle数据库

1、查看python版本号2、下载并安装cx_Oracle搜索地址:https://pypi.python.org/pypi搜索cx_Oracle,地址:https://pypi.org/project/cx_Oracle/#files安装轮子文件:pip install cx_Oracle-8.0.0-cp37-cp37m-win_amd64.whl3、百度下载instantclient并解压到一个目录下下载地址:http://www.oracle.com/technetwork/da

2020-08-17 17:33:49 598

原创 ModuleNotFoundError: No module named ‘pip‘

ModuleNotFoundError: No module named ‘pip‘No module named pip

2020-08-17 16:18:58 111

原创 Appium设置:No Reset/Full Reset

说明:If noReset is set to TRUE, the app data will NOT be cleared before this session starts.If fullReset is set to true, the app will get uninstalled and all data will be cleared.默认fullResetnoReset测试后停止并清除应用数据,不卸载APK在会话开始前 测试后 停止app,清除app数据并卸载

2020-08-13 09:49:05 2804

转载 Appium + Python:Exceptions(异常)

selenium.common.exceptions异常: selenium.common.exceptions.ElementNotSelectableException(msg=None, screen=None, stacktrace=None)依据: selenium.common.exceptions.InvalidElementStateException当尝试选择一个未能选中的元素时,异常会抛出异常: selenium.common.exceptions.Ele

2020-08-05 11:33:13 582

转载 Appium xpath 定位问题及常用方法【转】

来源:https://blog.csdn.net/onandonandon/article/details/55259273?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.c

2020-07-23 14:03:17 156

原创 Appium+Python移动自动化【13】:Appium Python API

1.contextscontexts(self):Returns the contexts within the current session.返回当前会话中的上下文,使用后可以识别H5页面的控件:Usage:driver.contexts2. current_contextcurrent_context(self):Returns the current context of the current session.返回当前会话的当前上下文:Usage:driver.curr

2020-06-18 15:49:23 1042

原创 Pytest框架【6】:fixture--conftest.py

说明: conftest.py配置里可以实现数据共享,不需要import就能自动找到配置内容。注意以下3点:1、conftest.py配置脚本名称是固定的,不能修改名称2、conftest.py与运行的用例要在同一个package下,并且有__init__.py文件3、不需要import导入conftest.py,pytest用例会自动查找语法: fixture(scope=“function”, params=None, autouse=False, ids=None, name=None):

2020-06-02 11:05:18 312

原创 Pytest框架【5】:setup和teardown

setup和teardown在每次用例开始前和结束后都会执行一次。setupClass和teardownClass,需配合@classmethod装饰器一起使用,启动一次可以执行多个用例。pytest框架也有类似的setup和teardown。用例运行级别函数级(setup_function/teardown_function)只对函数用例生效,每个test都运行。类级别(setup_class/teardown_class)只在类的前后运行一次,每个class中的所有test只运行一次。模块

2020-05-29 16:26:22 420

原创 Pytest框架【4】:pytest命令行

命令行参数1、-v:用于显示每个测试函数的执行结果2、-q:只显示整体测试结果3、-s:用于显示测试函数中print()函数输出4、-x:exitfirst,exit instantly on first error or failed test5、-h:帮助import pytest# [email protected](scope='function', autouse=True)def before(): print('\n--->before')

2020-05-29 14:53:03 505

原创 Pytest框架【3】:使用pycharm运行pytest

pycharm编写脚本文件import [email protected](scope='function', autouse=True)def before(): print('\n--->before')class Test_ABC: def setup(self): print('\n--->setup') def test_a(self): print('\n--->test_a') as

2020-05-29 14:34:33 587

原创 Pytest框架【2】:用例规则

pytest用例编写规则:1、测试文件以 ‘test_’ 开头,以 ‘_test’ 结尾。2、测试类以 ‘Test’ 开头,并且不能带有 init 方法。3、测试函数以 ‘test_’ 开头。4、断言使用基本的assert。pytest Exit Code清单:Exit Code 0:所有用例执行完毕,全部通过。Exit Code 1:所有用例执行完毕,存在Failed的测试用例。Exit Code 2:用户中断测试执行。Exit Code 3:测试执行过程中发生了内部错误。Exit C

2020-05-29 10:35:28 338

原创 Pytest框架【1】:环境安装

安装:1、安装方法pip install -U pytest2、查看版本pip show pytest也可以pytest --versionpytest用例规则:1、测试文件以 ‘test_’ 开头,以 ‘_test’ 结尾。2、测试类以 ‘Test’ 开头,并且不能带有 init 方法。3、测试函数以 ‘test_’ 开头。4、断言使用基本的assert。pytest Exit Code清单:Exit Code 0:所有用例执行完毕,全部通过。Exit Cod

2020-05-29 09:47:21 216 2

原创 Appium+Python移动自动化【4】:在配置文件中读取yml文件,应用到remote_driver中

from appium import webdriver# 新建driverdriver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

2020-05-26 16:11:51 240

原创 Appium+Python移动自动化【12】:appium+python+pytest+allure方法集合

# 自定义一个获取 toast内容的方法def get_toast_content(self, message): tmp_feature = By.XPATH, "//*[contains(@text,'%s')]" % message ele = self.find_element(tmp_feature) return ele.text# 自定义截图函数def take_screenShot(self):'''测试失败截图,并把截图展示到allure报告中'''

2020-05-26 15:01:11 315

原创 Appium+Python移动自动化【11】:appium启动运行log分析

1、手动启动appium 服务Launching Appium server with command: C:\Program Files (x86)\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 22 --automation-name Appium --device-name “lge-nexus_4-005475cbccd27

2020-05-22 14:48:31 680

原创 Appium+Python移动自动化【10】:android物理按键

keyevent(self, keycode, metastate=None)用法 :driver.keyevent(4)keyevent方法直接发送按键码就可以了,如返回键操作driver.keyevent(4) #返回键操作物理按键按键码电话键KEYCODE_CALL (拨号键)5KEYCODE_ENDCALL (挂机键)6KEYCODE_HOME (按键Home)3KEYCODE_MENU (菜单键)82KEYCODE_BACK

2020-05-21 16:45:33 548

原创 Appium+Python移动自动化【9】:滚动查找不在屏幕内的元素

循环滚动列表,直到找到目标元素并触发点击事件from appium import webdriverimport timedesired_caps = {}desired_caps['platformName'] = 'Android'desired_caps['platformVersion'] = '7.0'desired_caps['deviceName'] = 'xxxxxx...

2020-04-23 11:35:03 1362

原创 Appium+Python移动自动化【8】:This dictionary creation could be rewritten as a dictionary literal

报错信息:This dictionary creation could be rewritten as a dictionary literal解决方案:将desired_caps = {}写成desired_caps = dict()

2020-04-08 11:13:47 759

AndroidSDK(r24.4.1).rar

AndroidSDK(r24.4.1):下载后解压到任意路径下即可使用,可以自行选择需要的api版本下载,亲测稳定好用。

2020-05-21

接口自动化实战.rar

接口自动化:课程分为五个部分,开篇、初级、综合技能、进阶技能、结束语。课程格式包含html、pdf、m4a,请另行下载播放器学习。

2020-05-21

FiddlerSetup.rar

Fiddler抓包工具:一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

2020-05-21

Wireshark-win64.rar

Wireshark抓包工具:一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

2020-05-21

空空如也

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

TA关注的人

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