基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

这篇具有很好参考价值的文章主要介绍了基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

另一篇文章:自动化测试框架(pytest)&附学习视频

web自动化

学习视频,学习文档-白月黑羽
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

说明:
1紧跟着写的不加/,不加空格-表示同一级别信息,加空格表示后代
2.css定位tag,id,class时分别有不同的标识,其他属性都要加[]进行搜索,
Xpath所有属性都要都加【】,tag不用
3. css在使用tag,id,class定位时可以不写全信息,其他要写全
4.//用在xpath 空格用在css
5.xpath 写属性时,前面一定要加标签,或者是* //*[@id=‘west’]>
6. //div/button[1] xpath的1就是list的0
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

API测试

1.什么是接口测试?

对软件系统消息交互接口的测试,叫接口测试。链接

  1. SMS系统前端 和 后端服务器之间是消息交互接口,2.使用美团订餐, 美团APP和美团服务器之间, 也是消息交互的。
  2. HTTP协议的特点是,客户端发出一个HTTP请求给 服务端,服务端就返回一个HTTP响应。好像程序的API调用。
  3. API接口请求消息,通常都需要 服务端程序进行 一番处理,比如:对请求的权限检查,从数据库中读出数据,进行信息过滤和 格式转换,最后在HTTP响应中返回给客户端。
  4. 为什么 获取网页、图片这些 HTTP消息 通常不叫 API 接口消息呢?
    答:网页、图片、css 这些资源,都是 静态资源 , 就是一个个文件存储在服务器上的,获取这些信息,服务端直接读取文件,返回给客户端即可,无需特别的数据处理。
  5. 基于 HTTP 的接口测试工具, 常见的 有 Postman、Jmeter等,这些工具核心功能都是类似,都是用来构建HTTP请求消息,并且解析收到的HTTP响应消息, 用户来判断是否符合预期,也完全python+requsets库实现自己开发测试工具,进行测试。
  6. web测试,测试的是整个系统(前段+后端),接口测试就是前后端之前的消息交互

2.内外部接口

内部接口: 产品(也就是被测系统) 内部子系统之间 的接口。
外部接口:产品(也就是被测系统)和 另外的系统交互的接口。
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

3.fiddler抓包工具

浏览器,F12可以查看http请求消息,http响应消息。
Requests 库 是用来发送HTTP请求,接收HTTP响应的一个Python库。
当软件运行时,发送的http请求会经过fiddler,关闭软件,恢复正常
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

4.Python实现接口测试

4.1简单看一下测试文档

根据下面的这种测试接口文档的要求,我们利用requests库进行http的请求,看服务器是否返回我们的需求。
大量工作时,建立一个package, 将相应方法封装到类中。
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

4.2Requsets库发送http请求

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

4.3检查http响应

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
注意消息体

  1. 传送数据时,将本地写的字符串,通过encode编码成字节串,发送给服务器,服务器处理完,返回字节串,我们需要再解码成字符串方便阅读。
  2. response.content(字节码格式) response.text(字符串格式) 都是消息体。
    基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

4.4三种请求消息体格式: XML,urlencode,JSON,

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

5.三种鉴权机制(cookie,session,token)

鉴权机制就是让服务器知晓,收到的两个请求,是否来自同一个用户。这样才能保证我自己淘宝收藏的东西,不会跑到其他用户那。
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

  1. http是一种无状态协议(对事务处理没有记忆能力),是无连接的(每次连接只处理一个请求,用后立即断开连接),因此需要鉴权机制进行来接用户,之前的古老操作是 每次操作都要带上用户id,很繁琐,所以来了cookie,session,token鉴权机制
  2. cookie
    a. cookie的本质是一小段的文本信息,格式的字典,key=value。cookie的名称不是国定的,是由开发自定义的。
    b. 第一次c访问s,s将cookie信息放到响应头的Set-cookie中,返给c。
    c. 分类:会话cookie 1保存在内存,当浏览器的会话关闭之后自动消失。持久cookie :保存在硬盘,只有当失效时间到期了才会自动消失。
    d. 当客户端从第2次开始直到后面的所有请求,在请求头的Cookie都会自动的带上以上的Cookie的信息。从而实现鉴权。
    因为cookie是保存在客户端,可被截获,对于支付密码,银行卡号的信息存储就不安全,so->session,密码,直接变成了一个新的字段
  3. seesion
    sessionid ( phpwindid , phpid ,windowsuers ),一般是一个比较长的经过加密的字符串,sessionid在服务器和客户端分别都保存了一份,,然后通过cookie的鉴权的方式实现session的鉴权(sessionid 是存储在cookie中的)。
    安全性
    基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
  4. token
    a. 由于京东淘宝用户大,对于存储session的话还是很大,session生命周期默认30分钟,所以大项目时,满足不了需求
    b. 小程序,app,公众号是没有浏览器的,是不好传cookie,session的,so token
    基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

5.1session机制

网站服务程序怎么知道每个HTTP请求(比如付费 HTTP 请求)对应的是哪个客户的呢?—>建立seesion机制(会话机制)
使用session 机制区分用户,当然还有其他机制
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
实现:

  1. 我们可以通过查找字典的方式获取响应头的cookie,然后加到请求头中
  2. 使用requests.Session()类,直接记录cookie
# 创建 Session 对象
s = requests.Session()

# 通过 Session 对象 发送请求
response = s.post("http://127.0.0.1/api/mgr/signin",
       data={
           'username': 'byhy',
           'password': '88888888'
       })

printResponse(response)

# 通过 Session 对象 发送请求
response = s.get("http://127.0.0.1/api/mgr/customers",
      params={
          'action'    :  'list_customer',
          'pagesize'  :  10,
          'pagenum'   :  1,
          'keywords'  :  '',
      })

printResponse(response)

5.2python实现session

import requests

# 打印请求消息, 参数为 PreparedRequest 对象
def pretty_print_request(req):
    if req.body == None:
        msgBody = ''
    else:
        msgBody = req.body
    print(
        '{}\n{}\n{}\n\n{}'.format(
        '\n\n----------- 发送请求 -----------',
        req.method + ' ' + req.url,
        '\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
        msgBody,
    ))

# 打印响应消息
def pretty_print_response(res):
    print(
        '{}\nHTTP/1.1 {}\n{}\n\n{}'.format(
        '\n\n----------- 得到响应 -----------',
        res.status_code,
        '\n'.join('{}: {}'.format(k, v) for k, v in res.headers.items()),
        res.text,
    ))


req = requests.Request(
    'post',
    'http://www.baidu.com',
    headers={
        'head1':'value1',
        'head2':'value2',
    },
    data={
        'item1':'body-value1',
        'item2':'body-value2',
    })

prepared = req.prepare()
pretty_print_request(prepared)
session = requests.Session()
r = session.send(prepared)
pretty_print_response(r)

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

Pytest测试框架下常用函数

1.yield

yield与return类似,返回一定的值,被yield修饰的函数就是生成器,使用方法:下图第三点
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

list是直接创建,一次性封装666666个元素;生成器generator记住的是规则,调用生成器方法.next可以一直执行。
生成器生成的列表时间很短。
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

生成器generator记住的是规则,调用生成器方法.next可以一直执行
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

2.package下的_init_.py

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

3.装饰器(语法糖)-就是函数

(装饰器函数中输入函数,对输入函数的优化处理)
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
@property:对函数处理后,可以类似调用属性的方法来获取值,不用再使用方法的调用
如方法def name(self): return self._name 直接可以user().name 调用此方法
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

4.with语句:用于对象上下文的管理

创建的类必须有enter和exit方法才能被with使用
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频
基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频

await
async
log
装饰器文章来源地址https://www.toymoban.com/news/detail-436132.html

到了这里,关于基于python实现Web自动化测试(selenium)、API自动化测试(requests)&附学习视频的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jenkins+selenium+python实现web自动化测试

    jenkins+selenium可以做到对web自动化的持续集成。 Jenkins的基本操作: 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item 安装Jenkins插件, SSH plugin ,Email Extension Plugin , Hudson Seleniumhq plugin 点击系统管理-管理插件 在可选插件面板Filter中输入插件名,

    2024年02月02日
    浏览(58)
  • 基于Selenium+Python的web自动化测试框架_pythonselenium框架

    主要负责执行用例后的生成报告,一般以HTML格式居多,信息主要是用例执行情况。另外还可以配置发送邮件功能。 4、log模块 主要用来记录用例执行情况,以便于高效的调查用例失败信息以及追踪用例执行情况。 三、自动化框架的设计和实现 1、需求分析 首先我们的测试对

    2024年04月17日
    浏览(58)
  • 【python】之selenium模块,实现Web端自动化测试!【基础篇】

    Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之

    2024年02月06日
    浏览(45)
  • Mac OS下应用Python+Selenium实现web自动化测试

    在Mac环境下应用Python+Selenium实现web自动化测试 在这个过程中要注意两点: 1.在终端联网执行命令“sudo pip install –U selenium”如果失败了的话,可以尝试用命令“sudo easy_install selenium”来安装selenium; 2.安装好PyCharm后新建project,Interpreter一定要选对,默认给出的两个可选项很有可

    2024年02月12日
    浏览(38)
  • Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)

            本篇记录基于Python+Selenium.webdriver实现WEB端UI自动化测试,其中测试用例使用excel维护。为了在实际项目种的扩展应用,建议学习webdriver的元素定位方法,欢迎在评论区沟通讨论。 该示例选取的是登录页不需要输入验证码校验的基础页面(考虑到现在大部分项目都是

    2023年04月08日
    浏览(58)
  • python+pytest+selenium+PO+allure+DDT实现web自动化测试

    python:编程语言 pytest:独立的、全功能的python单元测试框架 selenium:用于web应用程序测试的工具 allure:测试报告展示 ddt:数据驱动 1.1 python解释器 3.10版本 1.2 pycharm集成开发环境 社区版 下载浏览器驱动,浏览器驱动版本要与浏览器版本一致。 下载地址: Chrome:http://npm.ta

    2024年02月02日
    浏览(63)
  • 【Web项目实战】从零开始学习Web自动化测试:用Python和Selenium实现网站登录功能

    B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db 目录 1.环境搭建

    2024年02月06日
    浏览(70)
  • 〖Python WEB 自动化测试实战篇⑨〗- 实战 - selenium 实现浏览器标签页的切换

    订阅 Python全栈白宝书-零基础入门篇 可报销! 白嫖入口-请点击我。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 Python全栈白宝书专栏, 免费阶段订阅数量4300+ , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:加入社区的小伙

    2023年04月08日
    浏览(90)
  • Selenium——基于Web的UI自动化测试工具(一)

            Selenium是一个自动化测试工具,用于模拟用户在Web上的行为。它支持多种浏览器,如Chrome、Firefox、IE等。Selenium可以实现多种操作,包括打开浏览器、导航到指定URL、填写表单、点击按钮、获取页面元素等。         Selenium有多种语言实现,包括Java、Python、C#等

    2024年04月13日
    浏览(50)
  • 基于Selenium的Web UI自动化测试框架开发实战

    1、自研自动化测试框架 首先进行需求分析。概要设计包括以下三大模块: 公共函数库模块(包括可复用函数库、日志管理、报表管理及发送邮件管理); 测试用例仓库模块(具体用例的相关管理); 可视化页面管理模块(单独针对Web页面进行抽象,封装页面元素和操作方

    2024年01月20日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包