Python之接口自动化
比菜鸟更容易让小白理解的Python编程语言,帮助小白从Python零基础入门到实战--实现自动化测试,告别点点点,本人之前就是一个代码零基础的小白,这套python专栏的博客,就是我在学习的过程中总结的笔记,非常适合没有基础的小伙伴学习
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
謹言
测试工程师(世上没有白走的路,每一步都算数)
展开
-
Python--接口自动化的学习目录
测试金字塔pytest测试框架之基础操作调出右键.pytest的方法pytest测试框架之数据驱动和参数化pytest测试框架之测试报告和插件pytest测试框架之测试夹具(Fixture)原创 2021-01-10 17:51:01 · 662 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“pytest测试框架之基础操作 ”
1、引言我有一个朋友是做Python自动化测试的。前几天他告诉我去参加一个大厂面试被刷了。我问他是有没有总结被刷下来的原因。他说面试官问了一些 pytest 单元测试框架相关的知识,包括什么插件系统和用力筛选。但是他所在的公司用的技术是基于 unittest 的,没有用过 pytest。我跟他说你可以和技术面试官说明,在实际过程当中你没有使用过 pytest,但是你可以后面再学。这哥们说:我就是这样跟面试官说的,但是面试官告诉我 pytest 现在已经是行业里面的主流,还在坚持原创 2021-01-09 22:13:47 · 600 阅读 · 0 评论 -
接口自动化中 客户端的 mock的应用
mock 测试(mocks)是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。之所以使用mock测试,是因为真实场景很难实现或者短期实现起来很困难。主要场景有:真实对象可能还不存在(接口还未完成) 真实对象很难搭建起来(第三方支付联调) 真实对象的行为很难触发(例如:网络错误) 真实对象速度很慢(例如:一个完整的数据库,在测试之前可能需要初始化) 真实对象可能包含不能用作测试(而不是为实际工作)的原创 2021-07-03 20:25:15 · 320 阅读 · 1 评论 -
接口自动化测试-编写代码的流程
接口自动化测试编写代码的流程:1、从单个接口的 test_.py 模块开始写。2、实现数据驱动 DDT3、读取Excel, ExcelHandler 类, 存放在 common 包里面4、分层,数据,配置文件,logger 日志记录,测试报告。5、注册、登陆。 数据动态生成,手机号码 faker.phone_number()6、数据库存在,为了节省开发成本,是可以不做数据库校验7、数据库的操作8、数据替换,excel #exsit_phone#, if 写得有点多,实现的代码简单容易理解,只原创 2021-06-28 23:34:15 · 481 阅读 · 0 评论 -
Mysql 的封装 二
在用例当中,如果有更改数据库的地方,需要校验更改前后的数据的变化,需要commit,否则直接按照数据库 封装 一的方法调用会出错,相当于没有提交数据如果想要按照方法一的封装调用的话,需要在用例前后分别调用数据库对象,建立连接,关闭连接,也就是调用两次数据库对象和获取了两次游标"""封装数据库"""import pymysqlfrom pymysql.cursors import DictCursorclass DBHandler: #初始化数据库 def __init_.原创 2021-06-25 23:56:51 · 192 阅读 · 0 评论 -
yaml 的封装
def read_yaml_handler(fpath): with open(fpath,encoding="utf-8") as f: data=yaml.load(f,Loader=yaml.SafeLoader) return datayaml_file=os.path.join(config_path,"config.yaml")yaml_confg=read_yaml_handler(yaml_file)原创 2021-06-24 13:38:39 · 445 阅读 · 0 评论 -
数据库的封装 一
"""封装数据库"""import pymysqlfrom pymysql.cursors import DictCursorclass DBHandler: #初始化数据库 def __init__(self, host, port, user, password, database, .原创 2021-06-23 23:49:17 · 144 阅读 · 0 评论 -
unittest 测试框架之数据驱动和参数化
用例执行顺序:ASCII码ASCII码的大小规则:0~9<A~Z<a~z文件名用例名ddt的话,按照数据读取的先后顺序数据驱动思想:Data driven Test应用场景:一个流程,有多组不同的数据去执行。好处:1、省代码2、有多少组数据,那就是多个用例。python模块:ddtpip install ddtddt用法:from ddt import ddt,data类名上面:@ddt...原创 2021-06-20 10:46:31 · 303 阅读 · 0 评论 -
unittest测试框架之基础操作
# 单元测试框架 - unittest pytest - 代码版的测试用例# 编写用例 -》 收集用例 -》 执行用例 - 》生成结果用例编写步骤1、导入unittest模块、被测文件或者其中的类2、创建一个测试类,并继承unittest.TestCase3、定义测试函数,函数名以test_开头(表示一个测试用例)。4、测试用例中:4.1 测试数据、期望结果4.2 用例步骤4.3 断言-期望结果与实际结果的比对 - assert self.assertXX...原创 2021-06-20 10:17:18 · 142 阅读 · 0 评论 -
Jenkins 项目的构建策略
构建触发器在configure中设置触发远程构建(例如:使用脚本)Trigger builds remotely (e.g., from scripts) --Build after other projects are built -- 在其他项目构建之后触发Build periodically -- 定时触发Poll SCM --定期监测代码更新,如果代码更新则触发构建...原创 2021-03-27 21:35:00 · 296 阅读 · 0 评论 -
Jenkins 项目的构建流程
Jenkins 项目的构建的流程:创建项目----->生成工作目录----->添加源码----->构建一、创建项目1、点击 New Item 创建项目二、生成工作目录1、输入项目名称,点击 Freestyle project 点击 OK2、点击 Save3、点击 Jenkins 就可以看到我们创建的项目4、点击 项目名称,进入项目5、点击 Build Now6、此时会在.jenkins\workspace\的目录下生成我们..原创 2021-03-26 23:56:22 · 518 阅读 · 0 评论 -
接口自动化测试编写代码的流程
1、从单个接口的 test_.py 模块开始写。2、实现数据驱动 DDT3、读取Excel, ExcelHandler 类, 存放在 common 包里面4、分层,数据,配置文件,logger 日志记录,测试报告。5、注册、登陆。 数据动态生成,手机号码 faker.phone_number()6、数据库存在,为了节省开发成本,是可以不做数据库校验7、数据库的操作8、数据替换,excel #exsit_phone#, if 写得有点多,实现的代码简单容易理解,只有一点笨拙。9、正则表达式,原创 2021-03-26 18:28:32 · 611 阅读 · 0 评论 -
jenkins --- windows部署
1、下载Jenkins.war包到本地2、下载jdk,安装并配置环境变量3、全部安装好之后,在cmd中输入启动Jenkins的命令java -jar jenkins.war --httpPort=7788--httpPort=3399 的作用是指定端口号,否则系统会自动分配端口号一般看到 Jenkins is fully up and running 这个命令 就是启动Jenkins成功了4、在浏览器中输入:localhost:7788,接下来会出现如下的展示,原始密码在.原创 2021-03-26 18:27:32 · 169 阅读 · 0 评论 -
python 接口自动化中应用到的 正则表达式
正则表达式:用来使用某种规则匹配字符串当中的子串。如果想要在python中使用正则表达式,需要先导入python自带的 re模块import rere 是 regular expression的简写: 正则表达式原创 2021-03-25 23:10:05 · 325 阅读 · 1 评论 -
python中的@classmethod的作用
一、简介1.1 描述classmethod修饰符对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。1.2 语法@classmethod1.3 返回值返回函数的类方法。1.4 实例以下实例展示了@classmethod 的使用方法:#!/usr/bin/python# -*- coding: UTF-8 -*- class A(object): bar = 1 .转载 2021-03-25 22:58:07 · 25640 阅读 · 3 评论 -
python中json的序列化和反序列化
序列化:将python的字典转化成 json 格式的字符串反序列化:将json 格式的字符串转化成 python 当中的字典例如:import json# 是把 json 格式的字符串转化成 python 当中的字典, 反序裂化a ='{"username": "yuz", "age": 10}'print(json.loads(a))# python的字典转化成 json 格式的字符串,序列化b = {"name": "星河", "age": 3}print(json.dum原创 2021-03-21 18:25:30 · 320 阅读 · 0 评论 -
python中应用到的jsonpath
jsonpath作用jsonpath: 帮助我们快速找到 json 数据当中的字段,key:valuejsonpath 语法JSONPath 描述 示例 $ 根目录对象,提取所有 $ . 或者 [] 子元素 .age 、.age、[age] 、$['age'] .. 子孙元素 $..number [0] 或者 .0 索引 phoneNumbers[0] [0:2:step] 切片 phoneNumbers原创 2021-03-14 00:36:56 · 292 阅读 · 0 评论 -
接口出现问题时的调试
当代码运行出错的时候,要进行debug哪里报错打印哪里这个看到请求问题,可以看状态码先初略判断一下404基本上是资源找不到,就是我们访问的url有问题再去排查我们拼接出来的url有没有问题这是调试模式下框起来的部分就是我们主动传的数据那首先先看url法1、把数据放到其他工具运行看看结果法2、调试其他接口看是否出现同样情况调试register注册接口时调试register注册接口成功,对比login接口url是不是少了...原创 2021-03-13 14:33:49 · 240 阅读 · 0 评论 -
输入 url 后的过程
a.域名解析,DNS 解析 -》 ip 地址(分层级)b.发起TCP连接的三次握手,建立连接。c.建立TCP连接后发起http请求d.服务端响应http请求,返回响应报文e.浏览器页面渲染,展示。f.断开TCP连接,四次挥手...原创 2021-03-12 14:22:02 · 127 阅读 · 0 评论 -
三次握手四次挥手
第一次握手:建立连接时,客户端向服务端发送请求报文(SYN),“我想建立连接” 第二次握手:服务器收到请求报文后,如同意连接,则向客户端发送确认报文(SYN/ACK)“同意建立” 第三次握手:客户端收到服务器的确认后,再次向服务器发送确认报文,完成连接(ACK) 三次握手主要是为了防止已经失效的请求报文字段发送给服务器,浪费资源。第一次挥手:客户端想分手,发送消息(FIN)给服务器 第二次挥手:服务器通知客户端已经接受的挥手请求,返回确认消息(ACK),但还没做好分手准备; 第三次挥手.原创 2021-03-12 14:20:59 · 110 阅读 · 0 评论 -
ERROR: file or directory not found: s
因为 -s, 不能把捕获信息显示到测试报告文件。只能用来调试。所以将 -s 去掉就可以了原创 2021-03-12 14:17:17 · 3333 阅读 · 0 评论 -
什么样的项目适合做自动化以及自动化测试的流程
什么样的功能或者项目适合做自动化测试?需求稳定,不会频繁变更。(项目初期不太合适) 研发和测试周期长,需要频繁执行回归测试。(搞活动--不适合) 需要在多种平台上重复运行相同的测试场景。 某些测试项目通过手工测试无法实现,或者手工成本太高。(性能测试--模拟上万客户同时登录) 被测软件测开发较为规范,能够保证系统的可测性。自动化测试的流程需求分析 制定测试计划 设计测试用例 用例评审 用Python书写代码 调试代码 测试执行 测试报告输出一般情况下,接口更适合做自动化,接原创 2021-03-10 20:25:53 · 764 阅读 · 0 评论 -
python接口部分总结
1、json和字典的区别?Json是轻量级的数据交互格式,以key-value的键值对形式来保存数据,结构清晰,可以说是目前互联网项目开发中最常用的一种数据交互格式。字典,同样是以key-value的键值对来保存数据,是python中的一种数据类型。2、你做接口自动化测试时,测试数据放哪里?1)对于一些基础配置比如数据库配置可以放到properties文件(yaml文件,没用过就别拓展了)2)接口测试需要用到的数据可以放数据库表,也可以放到excel中。3、什么是数据驱动?数..原创 2021-03-08 19:27:05 · 179 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“pytest测试框架之Mark”
pytest实现了测试用例的灵活筛选和管理那么这个时候就用到了:mark使用Mark标记的步骤:1. 在用例的上方加上@pytest.mark.标签名称2. 在命令行输入 pytest -m "标签名" 运行标签的用例3. pytest 的ini配置文件当中注册 smoke --目的:解决出现的警告信息例如:步骤一:在用例的上方加上@pytest.mark.标签名称#在用例的上方加上@pytest.mark.标签名称@pytest.mark.smokedef te原创 2021-03-07 22:13:10 · 280 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“接口自动化测试--框架设计思路“
如何将目录设置为项目如果要想将一个目录设置为项目,首先将鼠标放置到目录上,右键选择Mark Directory as 在选择Sources Root,之后该目录就独立出来,变成了项目。原创 2021-01-24 13:01:25 · 309 阅读 · 2 评论 -
pycharm中 如何将目录设置为项目
如何将目录设置为项目如果要想将一个目录设置为项目,首先将鼠标放置到目录上,右键选择Mark Directory as 在选择Sources Root,之后该目录就独立出来,变成了项目。原创 2021-01-24 12:35:51 · 3297 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“requests ”
"""第三方库pip install requestspython 用来发送 http 请求"""import requests# post 请求url = "http://www.keyou.site:8000/user/login/"# 请求参数:json 格式的bodydata = { "username": "lemon1", "password": "123456"}headers = { "Authorization": 'JWT fowf'.原创 2021-01-17 12:57:11 · 174 阅读 · 0 评论 -
史上最详细解释接口自动化测试中cookie、session和token的区别
如果要测试含有token鉴权的接口的流程:- 1. 通常情况下,先访问登陆接口- 2.通过登录接口 得到用户信息,token, session,- 3. 拿着表明自己身份的信息,再去访问其他接口。含有token的接口,每个接口都要传token的,否则接口测不通的,拿不到数据用户校验不通过token也是可以的,可以用session只要用session存储用户,响应头返回的永远是set-cookiecookie是和域名、IP绑定在一起的token vs sessio..转载 2021-01-15 10:57:26 · 1645 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“接口基础理论 ”
接口测试产生的背景Web 页面做得越来越复杂,交互数据越来越多,在前端页面和后台服务器之间有大量数据传递(函数调用),为了降低前端工程师和后台程序员的难度,前端和后端采用“接口”来传递数据。 接口测试主要考察传递的数据是否正确。Web 前端技术:HTML5、CSS3、JavaScriptWeb 规范:构建基于 B/S 架构程序的一套行业规范1)Web 前端技术:HTML5、CSS3、JavaScript 富客户端 ----- 越来越炫酷、丰富、用户体验好、前端开发工程师在做2)Web原创 2021-01-13 16:45:49 · 192 阅读 · 0 评论 -
pytest中使用allure生成测试报告
使用allure需要两步:第一步:官网下载,配置环境变量第二步:pycharm中pip install allure-pytestpytest --alluredir=目录路径allure serve 目录路径原创 2021-01-11 15:14:12 · 1852 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“pytest测试框架之测试夹具(Fixture) ”
测试夹具(Fixture)是什么?在测试过程当中,有时你需要提前给你的测试用例去准备一个运行环境。这个测试环境通常来说被称为测试夹具(Fixture),又被称为固定装置、测试固件等。 当你要测试一个电器的时候,你需要提供不同的输入电压电流的环境, 当你测试一台电脑网络的时候,必须要提供网络环境, 当你要测试一个手机游戏能否被安装时,你需要提供一台手机环境, 当你要测试一个软件能否登录的时候,你需要准备用户名和密码这样的用户环境, 当你要测试一个数据库能否操作原创 2021-01-10 17:00:51 · 577 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“pytest测试框架之测试报告和插件”
pytest 当中的测试报告,通常是以插件的形式生成的,如果你想生成一个html格式的测试报告,可以先安装 pytest-html 这个插件。pip install pytest-html接下来你需要在运行用例的时候,在 pytest 命令后面加上 --html=<测试报告名称>.htmlpytest --html=report.html当运行完用例以后,你可以在当前目录下找到一个 report.html 的文件,打开就可以查看测试报告了。pytest 之所以成为主流原创 2021-01-10 15:17:22 · 157 阅读 · 0 评论 -
Python3《零基础小白从入门到实战》之“pytest测试框架之数据驱动和参数化”
现在我们编写的函数和测试用例是1对1的关系,也就是说,当你想测试某个功能场景的时候,你必须要去编写一个对应的测试函数。当测试的场景越来越多,测试数据越来越复杂的情况下,需要编写更多的测心率函数,而这些函数的逻辑基本上是重复的。在 pytest 当中可以使用参数化这种测试手段,简化编写用例函数的过程。我们并不需要为每一组测试数据单独去编写一个测试函数,而是采取多种数据共用一个函数的方式。如果测试操作几乎一致,可以重复使用这一个函数进行测试。例如:import pytestcases = [原创 2021-01-10 15:14:30 · 273 阅读 · 0 评论 -
测试金字塔
Unit:单元测试Service:接口测试(服务层)UI:web页面、APP页面测试金字塔:越接近底层,效率越高,速度越快越接近顶端,测试成本越高原创 2021-01-09 23:44:39 · 952 阅读 · 0 评论 -
调出右键.pytest的方法
调出右键.pytest的方法: file--->settings--->pytest--->Python Integrated Tools-->testing-->Default test runner:pytest-->ok原创 2021-01-09 23:33:58 · 456 阅读 · 1 评论