自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

familyyan的博客

如果不付诸行动,梦想就永远只是幻想。梦想无论大小,只要你展开行动,他就有实现的可能!

  • 博客(144)
  • 收藏
  • 关注

原创 Mysql最新版8.0.21下载安装配置教程

Mysql最新版8.0.21下载安装配置教程一、下载1、下载安装包mysql下载路径:https://dev.mysql.com/downloads/file/?id=496745ng)]2、解压压缩包解压到安装的目录:3、在此目录下新建my.ini配置文件[mysqld] # 设置 3306 端口 port=3306 # 设置 mysql 的安装目录 basedir=D:\environment\mysql\mysql-8.0.21-winx64# 设置 mysql 数据库的

2020-07-20 19:24:16 19400 47

原创 python动态设置类属性

setattr(对象/类, 属性名, 属性值):添加 对象/类 的属性和值, 如果属性存在,修改 对象/类 的属性值。hasattr(对象/类, 属性名): 对象或者类是否有这个属性,有就是True, 没有就是False。要在代码的运行过程当中,才知道要给类/对象、添加/删除/修改额外的属性。delattr(对象/类, 属性名): 删除 对象/类 的属性和值。getattr(对象/类, 属性名): 获取 对象/类 的属性值。类的属性和方法,此处统一称为atrribute(属性)

2022-11-13 16:59:02 1134 1

原创 unnitest结合ddt实现数据驱动

一、unnitest结合ddt实现数据驱动的步骤安装ddt模块使用@ddt,@data,@unpack(解包),@file_data加载数据加载数据的格式包括:列表,元组,字典,文件等二、示例

2022-05-30 18:38:11 385 1

原创 pytest结合pymysql实现数据库数据驱动

一、selenium读取mysql中数据获得数据库连接查询数据获得数据库连接查询数据二、创建数据库,表,向表中插入数据。连接数据库mysql -u root -p查看现有的数据库show databases; 创建数据库create database testing_db;使用创建的数据库use testing_db;创建表create table user_tbl(id int primary key auto_increment,username varchar(20),

2022-05-29 22:23:44 1917

原创 pytest结合xlrd实现excel数据驱动

一、Selenium怎么读取excel文件1、安装xlrd模块2、使用xlrd模块来处理excel文件3、结合pytest的参数化处理方式来实现ddt二、示例新建一个excel文件:test_excel.xlsx新建一个test_excel.py文件# -*- coding: utf-8 -*-# @Time: 2022/5/29 4:58 下午# @Author: wcystart# @File: test_excel.py# @description:import pyte

2022-05-29 17:20:15 548

原创 pytest结合json实现json格式的数据驱动

一、Json简介JSON:JavaScript Object Notation,是一种轻量级的数据交互格式。json应用广泛,前端与后端的数据通信,基本上用的格式都是josn。Json 的本质是字符串。二、DDT中如何处理json1、使用python中的json模块来处理json文件2、结合pytest的参数化处理方式来,实现ddt先创建一个json文件:test.json{“keys”: [“tom”,“rose”,“tina”]}再创建一个test_json.py模块:# -*-

2022-05-29 16:52:30 866

原创 pytest结合csv模块实现csv格式的数据驱动

一、什么是数据驱动测试DDT:data drive test准备一组数据,通过写一个测试用例,不同的数据进行迭代。二、csv文件承载数据CSV:Comma Separated Valuescsv文件就是逗号分隔的文本文件。使用python中的csv模块来处理csv文件结合pygtest的参数化处理方式来实现ddt三、csv数据驱动示例首先创建一个csv的file:zhangsan,lisi,wangwutom,rose,lili然后创建一个test_csv.py模块# -*-

2022-05-29 16:31:21 749

原创 Web自动化之logging日志库的使用

一、日志作用程序调试了解程序运行是否正常故障分析与问题定位用户行为分析二、日志的等级DEBUG:最详细的日志信息,典型应用场景是问题诊断。INFO:信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作。WARNING:当某些不期望的事情发生时记录的信息,(如:磁盘可用空间较低),但是此时应用程序还是正常运行的ERROR:由于一个严重的问题导致某些功能不能正常运行时记录的信息。CRITICAL:当发生严重错误,导致应用程序不能继续运行时记录的

2022-05-29 16:14:02 468

原创 Mac系统下Jmeter的下载、安装、及环境变量配置

一、Jmeter是什么?Jmeter是Apache组织开发的基于java的压力测试工具。二、Jmeter主要是用来做什么的?1、能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。2、对应用程序进行功能/回归测试3、批量产生测试数据三、检查是否安装了jdk因为Jmeter是基于java开发的,所以首先要安装Java JDK打开终端,输入java,查看是否安装Java,若安装则输入java -version查看java版本,最好在1.8.0及以上

2022-03-18 15:22:12 14720 6

原创 postman之设置环境变量和全局变量

一、什么场景下需要设置环境变量在实际开发测试工作中,会包含开发环境、测试环境、灰度环境、生产环境,如果每发送一个请求,都要把域名填写一遍,是不可取的,这时候我们可以设置环境变量,以方便所有接口发送时使用。二、怎么在postman中添加环境变量注意:不同环境定义的变量名要一致三、具体发送接口时的使用1、选取已经定义好的环境变量2、使用{{}} 双花括号四、定义全局变量1、环境变量和全局变量的区别环境变量:环境变量就是全局变量全局变量:全局变量是能够在任何接口里面访问的变量2、获取环境

2022-03-13 17:06:51 9564 1

原创 postman之下载安装&界面简介

一、接口测试的简介和分类接口测试就是测试系统组件接口之间的一种测试。二、接口测试的分类测试外部接口:测试被测系统和外部系统之间的接口。(只需要测试正例即可)测试内部接口: 1.内部接口只提供内部系统使用(只需要测试正例即可) 2.内部接口提供给外部系统使用(测试必须非常全面,正例、各种异常场景,权限控制)三、接口测试的流程以及用例的设计1、拿到接口api文档(通过抓包工具获取),熟悉接口业务,接口地址,鉴权方式,入参、出参,错误码2、编写接口用例以及评审编写

2022-03-13 16:19:51 775

原创 charls抓包工具使用(Android和IOS手机)

一 、charls 下载安装charls官网https://www.charlesproxy.com/download/选择合适pc端的版本,一步步的进行安装即可。二、charls的作用Charles功能强大,不仅可以用来抓包,还可以进行断点、map、rewrite等操作, 适用多种场景。三、IOS手机连接charls(1)电脑上安装证书(2)手机和电脑连接同一段网络获取ip地址后,在手机连接的wifi上,选着配置代理-手动-输入ip地址,和端口号:8888随便启动手机里一款APP,

2022-02-25 22:17:41 3031 1

原创 web自动化之下拉列表处理

一、select下拉列表处理1、定位到select元素2、选择select的属性值(1)、通过options索引选择下拉内容sel.select_by_index(1)(2)、通过options的value属性值选择下拉内容sel.select_by_value(“fiat”)(3)、通过options文本内容选择下来内容sel.select_by_visible_text(“Audi”)3、会直接选择,没有页面的动画效果二、select下拉列表代码实现处理from seleni

2022-02-14 19:55:03 3186

原创 web自动化之Alert弹窗处理

一、弹窗分类(1)JS 弹框点确认:alert.accept()点取消 :alert.dismiss()获取文本内容:text = alert.text给弹框赋值: alert.send_keys(“Emily”)(2)模态框:通过元素定位来操作,(先触发模态框,再定位到模态框中的元素、操作元素)二、代码实现from selenium.webdriver.common.alert import Alertfrom selenium import webdriverimport log

2022-02-14 19:45:24 3317

原创 web自动化之iframe切换

一、iframe切换方式1、通过iframe的name属性 前提是iframe有name属性 driver.switch_to.frame("login_frame")2、通过元素定位 iframe = driver.find_element(By.ID, "login_frame") driver.switch_to.frame(iframe) driver.find_element(driver.find_element(By.ID, "login_frame")

2022-02-14 19:40:00 2219

原创 web自动化之元素操作与元素等待

一、元素操作1、点击element.click()2、获取元素名称element.tag_namefrom selenium import webdriverimport loggingimport timelogging.basicConfig(level=logging.DEBUG)# 启动浏览器驱动服务器driver = webdriver.Chrome()driver.get("https://www.baidu.com")# 找到百度输入框,输入柠檬班ele = dr

2022-02-13 19:59:52 724

原创 web自动化之元素定位

一、基础的元素定位通过一个属性定位:以百度浏览器为例:定位百度输入框在浏览器上定位元素的操作方式:按F12,点击左上角的箭头,呈绿色,再点击输入框,可看到 ,有一段代码input标签被高亮显示了,既定位到了。可看到inpu标签,有id class name 属性,可利用这些元素进行元素定位。1、通过id定位2、通过name定位3、通过class定位4、通过xapth定位5、通过css定位代码实现:from selenium import webdriverimport log

2022-02-13 13:45:11 2148

原创 Mac 搭建selenium环境

一、selenium环境搭建1、安装seleniumpip install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium检验selenium是否安装成功,到Pycharm中 import一下,能正常导入说明安装成功。2、下载对应的浏览器驱动谷歌浏览器:http://chromedriver.storage.googleapis.com/index.htmlhttps://npm.taobao.org/mirrors/chromedriv

2022-02-12 16:20:24 2495 2

原创 Mac pytest结合allure-pytest生成allure测试报告

一、allure特点1、allure官网:http://allure.qatools.ru/2、allur下载:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2.13.2/3、allure属于第三方的工具,曾现更多维度,更好看的测试报告4、allure不执行用例,也不生成测试报告文件,仅仅是曾现测试报告而已5、使用allure之前一定要先生成测试结果文件,不能单独使用6、退出allure服务以后测

2022-02-12 14:52:11 1448

原创 pytest框架前后置处理

pytest框架实现一些前后置(固件、夹具)的处理,常用三种一、为什么需要前后置这些功能呢?比如:web自动化执行用例之前,请问需要打开浏览器吗?用例执行后需要关闭浏览器吗?二、setup和teardowntest_demo01.pyclass TestDemo01: def setup(self): print("\n在执行测试用例之前执行的初始化代码:打开浏览器,加载网页") def test_01_sunwukong(self): print

2022-02-11 10:52:33 2050

原创 pytest单元测试框架简介

一、什么是单元测试框架单元测试框架是指:在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。二、单元测试框架的分类Java: Juint、TestNGPython: unnitest、pytest三、单元测试框架是用来做什么的?测试发现:从多个文件里面找到测试用例测试执行:按照一定的顺序和规则去执行,并生成结果测试判断:通过断言来判断预期结果和实际结果的差异测试报告:统计测试进度、耗时、用例的通过率,生成测试报告四、单元测试框架和自动化测试框架有什么区别?(

2022-02-08 17:42:48 3831

原创 Mac docker部署jenkins,在jenkins上运行自动化代码

一、docker部署jenkinsdocker run -d -p 7000:8080 --name py42jenkins -u root -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine部署成功图下图:二、查看Jenkins是否启动执行命令:docker ps -a三、浏览器中访问通过7000端口http://localhost:70

2022-01-24 18:36:32 2910

原创 Mac系统下载安装配置docker

一、进入到官网下载https://docs.docker.com/desktop/mac/install/查看自己电脑系统的配置对应下载,intel的包二、安装直接点击dmg的安装包,把它拖到Application中,然后在启动台就可以看到图标,启动docker就可以了,然后在电脑的最上边状态栏中可以看到docker图标,点击,显示,docker已经是在运行中了。docker的一些配置:把内存调大一些:配置镜像加速器,去阿里云申请个:申请流程:参考:https://blog.51

2022-01-24 11:18:25 622

原创 python接口自动化之mock的使用

一、Mock是什么?mock 就是模拟的意思,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。在接口数据字段还没开发好,我们可以在写接口自动化的时候,事先使用mock数据。二、为什么要使用的mock?在做接口测试时,开发还未完成接口的实现,自动化接口测试代码就没办法完成,这个时候就需要用Mock对象库来模拟接口响应结果,等到开发完成接口功能,再把Mock模拟响应结果的代码删除掉,整个自动化接口测试项目就完成了。三、Mock可以解决哪些场景问题?接口的依赖

2022-01-21 15:16:29 2352

原创 Python自动化之jsonpath基本使用

一、jsonpath是什么?用来解析json数据的所使用的。二、jsonpath的作用通过通用的表达式可以获取json中指定的值。三、jsonpath的使用1、安装jsonpathpip install jsonpath2、具体的使用$ —根节点(root). —子节点(一个点)… —子孙节点(两个点) 递归搜索(*):—通配符,表示所有的元素[] —子节点eg:import jsonpathclass_info = {"class_one": {

2022-01-15 16:55:42 1206 1

原创 python自动化之re模块

一、re是什么?正则表达式是一个特殊的字符序列,能方便的检查一个字符串是否与某种模式匹配。re模块使得python拥有全部的正则表达式功能。二、re 模块的作用通过使用正则表达式,可以:测试字符串内的模式。—— 例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本。—— 可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。基于模式匹配从字符串中提取子字符串。—— 可以查找文档内或输入域内特定的文本。三、re模块

2022-01-14 18:27:43 830 8

原创 python-faker库使用

一、faker库简介在编写程序过程中,我们常常需要用到很多数据来进行测试。如果要是手动制造数据的话,肯定要花费大把精力,这不合理。此时我们应该使用Faker这个Python库,用它来生成各种各样的伪数据。二、faker库安装pip install faker三、faker库使用1、四要素1、姓名2、身份证3、手机号4、银行卡# 1、姓名fk = Faker(locale="zh-CN")name = fk.name()print(name) # 陈洋# 2、身

2022-01-11 17:32:11 19723 2

原创 python接口自动化之操作数据库pymysql

一、安装pymysqlpip install pymysql二、pymysql的使用步骤1、导入import pymysql2、连接db = pymysql.Connect(host="api.lemonban.com", port=3306, user="future", password="123456", db="futureloan",

2022-01-10 18:38:03 631

原创 python接口自动化之框架设计

一、框架设计1、excel管理测试用例数据 1.1、获取测试用例数据2、接口请求 2.1、发起post请求 2.2、token鉴权处理 2.3、数据驱动3、日志收集 3.1、日志收集4、断言 预期结果和实际结果进行对比 4.1、响应结果的断言 4.2、数据库断言5、配置文件 5.1、py配置文件(全局参数)6、框架执行入口 run.py main.py二、框架的分层结构设计按功能进行py文件管理1、tools:工具、业务逻辑的

2022-01-10 18:16:49 461

原创 python接口自动化之requests发送get、post请求

一、接口必要的数据请求地址:请求方法:请求参数:响应参数二、requests库的安装pip install requests三、request的使用支持所有的http请求方式1、requests 发送get请求get请求:def get(url, params=None, **kwargs):参数放在URL后面:http://httpbin.org/get?key1=value1&key2=value2参数使用params关键字接收,会自动拼接到url地址后面?:表示携

2022-01-10 16:36:53 2353

原创 python接口自动化之鉴权

一、cookie和seeion鉴权二、token鉴权2.1、token是什么?Token,通常叫做令牌,是一种自定义实现的类似Session/Cookie机制的,用来代替传统Session/Cookie的新兴鉴权方案,当前很多的应用API鉴权就是使用的Token令牌。Token是服务端生成的一串加密字符串,用户在用户登录成功后生成并返回给客户端,之后客户端的每次请求都会通过GET/POST/Header等方式携带Token,服务端通过验证Token的有效性来完成鉴权。作处。2.2、toke

2022-01-10 11:38:57 1800

原创 Mac系统下MySql-8.0.27版本下载与安装

一、查看当前Mac电脑的CPU架构和CPU指令集1、查看CPU架构uname -a | awk -F " " ‘{print $(NF-1)}’2、查看CPU指令集,是32位还是64位ioreg -l -p IODeviceTree | grep “firmware-abi” | sed -e 's/[^0-9A-Z]//g’二、去官网下载对应的dmg1、官网地址https://www.mysql.com/downloads/2、找对应的下载包进入官网之后,滑到底部下一步:也可能下

2021-12-27 20:15:40 1668

原创 Python学习之文件操作

一、文件File通过Python程序来对计算机中的各种文件进行增删改查的操作- I/O(Input / Output)- 操作文件的步骤:① 打开文件② 对文件进行各种操作(读、写),然后保存③ 关闭文件二、文件打开操作open函数...

2021-12-27 16:10:32 1990

原创 python学习之异常处理

一、什么是异常?程序在运行过程当中,不可避免的会出现一些错误,比如:使用了没有赋值过的变量使用了不存在的索引除0…这些错误在程序中,我们称其为异常。程序运行过程中,一旦出现异常将会导致程序立即终止,异常以后的代码全部都不会执行!二、处理异常1、为什么要处理异常?程序运行时出现异常,目的并不是让我们的程序直接终止!Python是希望在出现异常时,我们可以编写代码来对异常进行处理!2、语法 try语句 try: 代码块(可能出现错误的

2021-12-26 22:03:38 97

原创 python学习之模块和包

一、模块化模块化,模块化指将一个完整的程序分解为一个一个小的模块通过将模块组合,来搭建出一个完整的程序。二、模块化的好处不采用模块化,统一将所有的代码编写到一个文件中采用模块化,将程序分别编写到多个文件中模块化的优点:① 方便开发② 方便维护③ 模块可以复用!三、Python中怎么定义一个模块在Python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件。注意:模块名要符号标识符的规范。四、模块的引入在一个模块中引入一个外部模块。① i

2021-12-25 11:46:22 497

原创 python学习之垃圾回收

一、什么是垃圾回收就像我们生活中会产生垃圾一样,程序在运行过程当中也会产生垃圾二、为什么要进行垃圾回收在程序中没有被引用的对象就是垃圾,这种垃圾对象过多以后会影响到程序的运行的性能所以我们必须进行及时的垃圾回收,所谓的垃圾回收就是讲垃圾对象从内存中删除三、Python中的垃圾回收机制在Python中有自动的垃圾回收机制,它会自动将这些没有被引用的对象删除,所以我们不用手动处理垃圾回收.eg :class A: def __init__(self): se

2021-12-24 16:53:04 250

原创 python入门学习之类属性、实例属性、类方法、实例方法

一、类属性1、定义直接在类中定义的属性是类属性2、访问类属性可以通过类或类的实例访问到3、修改类属性只能通过类对象来修改,无法通过实例对象修改eg:class A: # 定义类属性 count = 10# 通过类来访问print(A.count) # 10a = A()# 通过类实例来访问print(a.count) # 10# 通过类对象来修改A.count = 20print('类对象修改之后的值:', A.count) # 20

2021-12-24 16:35:35 2623

原创 Python面向对象之多态

一、什么是多态?多态是面向对象的三大特征之一。多态从字面上理解是多种形态,一个对象可以以不同的形态去呈现。eg:狗(狼狗、藏獒、哈士奇、古牧 。。。)多态比喻:如果一个东西,走路像鸭子,叫声像鸭子,那么它就是鸭子举例说明:class A: def __init__(self, name): self._name = name @property def name(self): return self._name @name.se

2021-12-24 15:28:43 954

原创 python面向对象之继承与重写

一、举实例来引入继承定义一个类 Animal(动物)这个类中需要两个方法:run() sleep()定义一个类 Dog(狗)这个类中需要三个方法:run() sleep() bark()分析:有一个类,能够实现我们需要的大部分功能,但是不能实现全部功能如何能让这个类来实现全部的功能呢?方式一:直接修改原来的类这种方式的弊端:修改起来会比较麻烦,并且会违反OCP原则 OCP(开闭原则,对扩展开放,对修改是关闭的)class Animal: def run(self):

2021-12-24 11:46:22 501

原创 python面向对象之封装

一、封装1、封装简介封装是面向对象的三大特性之一封装指的是隐藏对象中一些不希望被外部所访问到的属性或方法。2、如何隐藏一个对象中的属性?将对象的属性名,修改为一个外部不知道的名字。3、如何获取(修改)对象中的属性?需要提供一个getter和setter方法使外部可以访问到属性getter 获取对象中的指定属性(get_属性名)setter 用来设置对象的指定属性(set_属性名)4、封装的特点使用封装,确实增加了类的定义的复杂程度,但是它也确保了数据的安全性1.隐藏了属

2021-12-23 19:59:58 518

空空如也

空空如也

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

TA关注的人

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