当前位置: 首页 > news >正文

如何自己做电影网站网页设计培训学校

如何自己做电影网站,网页设计培训学校,比较好的网站建设公司,wordpress如何静态化1 接口测试 日常测试中接口测试是一项重要的工作,尤其是http协议的接口测试更加普遍,比如一些常用的测试框架或者工具(robotframework框架,testng框架,postman等)都支持http接口的测试,而这节内容主要介绍…

1 接口测试

日常测试中接口测试是一项重要的工作,尤其是http协议的接口测试更加普遍,比如一些常用的测试框架或者工具(robotframework框架,testng框架,postman等)都支持http接口的测试,而这节内容主要介绍下http接口在pytest框架下的应用。

                                                                              测试分层

2 复习下Http协议规范

Http协议是基于TCP协议(三次握手)的7层协议(不了解的可以搜索下网络协议模型),所以在开始使用工具之前我们通过浏览器的开发者工具看下http请求的基本消息格式。

我们以输入百度网站为例,通过打开开发者工具,看下访问百度的http请求。

通过上面几张图可以看到 http请求的URL为https://www.baidu.com, 请求的method为Get,请求响应的status为200,还包括发送请求的消息头headers信息和响应返回的消息头Headers信息。

做接口测试我们关注的肯定也是上述http请求的内容,通过传入的参数,断言返回的消息响应码/消息体是否满足我们的预期。

3 安装所需的python包

在pytest框架下我们主要介绍两个包requests(作为http客户端)和pytest插件pytest-httpserver(作为http的服务端)。

pytest安装

使用pip命令安装: pip install pytest -i https://mirrors.aliyun.com/pypi/simple/

pytest-httpserver安装

使用pip命令安装: pip install pytest-httpserver -i https://mirrors.aliyun.com/pypi/simple/

requests安装

使用pip命令安装: pip3.10 install requests -i 
https://mirrors.aliyun.com/pypi/simple/

PS:安装在pytest工程所运行的python环境,python的安装目录或者虚拟环境目录,可以参考之前文章查看运行环境pycharm配置pytest运行环境)

4 pytest-httpserver插件介绍

官网使用介绍 请参考pytest-httpserver — pytest_httpserver 1.0.12 documentation

pytest-httpserver插件安装后,默认会有一些fixture函数直接使用(fixture函数请参考之前问文章Pytest框架中fixture功能详解)。

在pytest_plugin.py中有fixture函数httpserver,该函数会初始化一个HTTPserver,当然我们也可以直接使用HTTPServer。

启动httpserver需要监听的ip和port ,首先会取os模块配置的环境变量,如下:

listen_host = os.environ.get("PYTEST_HTTPSERVER_HOST")
listen_port = os.environ.get("PYTEST_HTTPSERVER_PORT")

如果环境变量获取为None,则取HTTPserver类的类属性作为默认值:

DEFAULT_LISTEN_HOST = "localhost"
DEFAULT_LISTEN_PORT = 0 # Use ephemeral port

以下是源代码:

如果不想使用默认的ip和端口,我们可以重新设置环境变量的ip地址和端口

import os
import pytest
#设置环境变量
os.environ['PYTEST_HTTPSERVER_HOST'] = '127.0.0.1'
os.environ['PYTEST_HTTPSERVER_PORT'] = '8080'
#获取环境变量值
listen_host = os.environ.get("PYTEST_HTTPSERVER_HOST")
listen_port = os.environ.get("PYTEST_HTTPSERVER_PORT")
#打印
print(listen_host,listen_port)

打印结果:

127.0.0.1 8080

用上面的ip和端口,我们启动一个httpserver:

from pytest_httpserver import *
#初始化类
http_server = HTTPServer(listen_host,listen_port)
#设置url 和 method
http_server.expect_request(
"/index.html", method="get").respond_with_json({"code": "200"})
#启动
http_server.start()

httpserver启动后,我们可以登陆浏览器,访问如下:

以上函数解释:

  • expect_request 方法:用于创建HTTP请求地址,设置http的uri地址,或者http的method(GET,POST等),或者http的请求参数(?问号后面的参数),或者http请求响应中返回的json体等

  • respond_with_json方法:设置http请求响应的json体,可定义响应码(200等)。
  • start方法:启动httpserver。对应的stop方法是关闭httpserver

5 requests库介绍

requests库是一个简单易用的HTTP库,使用前先导入requests包。

import requests

以下是一些常用函数介绍:

  • get方法

requests.get('http://127.0.0.1:8080/index.html',headers={'user-agent': 'my-app/0.0.1'})

其中headers为添加的请求头信息。

  • post方法

requests.post('http://127.0.0.1:8080/index.html'', data = {'key':'value'})

其中data为请求body体。

  • 处理响应

不管是get还是post方法,我们都可以访问响应对象的属性来获取所需的响应信息,比如:

response.text:获取响应内容的字符串形式。

response.content:获取响应内容的二进制形式。

response.status_code:获取HTTP响应状态码。

response.headers:获取响应头。

response.json():如果响应内容是JSON格式,可以直接调用这个方法来获取JSON数据。

6 http接口用例

在pytest框架下我们创建测试用例,并校验响应的statuscode和内容。

创建两条用例分别请求httpserver的get和post。

import requests
#使用fixture函数httpserver
def test_1(httpserver):#通过httpserver这个fixture函数,启动一个serverhttpserver.expect_request("/service", method="post", json={ "title": "hello pytest"}).respond_with_json({"code": "200"})#通过requests库发起http请求rsp = requests.post("http://127.0.0.1:8080/service", json={ "title": "hello pytest"})assert rsp.status_code == 200assert rsp.json() == {"code": "200"}def test_2(httpserver):httpserver.expect_request("/index.html", method="get").respond_with_json({"code": "200"})rsp = requests.get(httpserver.url_for("/index.html"))assert rsp.status_code == 200assert rsp.json() == {"code": "200"}

以上我们简要介绍了使用python库requests和pytest插件pytest-httpserver在pytest框架下的http接口用例,大家可以在线下多多实践,当然对于大型的项目,我们还要规划好整个测试用例目录结构。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习和关注,谢谢大家。


文章转载自:
http://disoperation.hmxb.cn
http://stepfather.hmxb.cn
http://paroicous.hmxb.cn
http://bentonite.hmxb.cn
http://floatstone.hmxb.cn
http://propitiation.hmxb.cn
http://data.hmxb.cn
http://discommender.hmxb.cn
http://wipe.hmxb.cn
http://sponge.hmxb.cn
http://sigmoidoscope.hmxb.cn
http://mucinolytic.hmxb.cn
http://subtropical.hmxb.cn
http://timorous.hmxb.cn
http://outcome.hmxb.cn
http://kermit.hmxb.cn
http://blue.hmxb.cn
http://bioceramic.hmxb.cn
http://ectorhinal.hmxb.cn
http://postmarital.hmxb.cn
http://levo.hmxb.cn
http://ferret.hmxb.cn
http://keeve.hmxb.cn
http://bedlamite.hmxb.cn
http://limen.hmxb.cn
http://subtense.hmxb.cn
http://doorcase.hmxb.cn
http://fissiparism.hmxb.cn
http://hyperfine.hmxb.cn
http://sportsmanlike.hmxb.cn
http://plasticiser.hmxb.cn
http://stut.hmxb.cn
http://sacred.hmxb.cn
http://introit.hmxb.cn
http://pastie.hmxb.cn
http://disdainful.hmxb.cn
http://well.hmxb.cn
http://cockfight.hmxb.cn
http://tamara.hmxb.cn
http://absorbate.hmxb.cn
http://rewater.hmxb.cn
http://proclinate.hmxb.cn
http://trypanocidal.hmxb.cn
http://faith.hmxb.cn
http://shimmy.hmxb.cn
http://cooer.hmxb.cn
http://koan.hmxb.cn
http://longness.hmxb.cn
http://interlineation.hmxb.cn
http://classless.hmxb.cn
http://copartnership.hmxb.cn
http://spyhole.hmxb.cn
http://hellbox.hmxb.cn
http://millesimal.hmxb.cn
http://metronomic.hmxb.cn
http://conducively.hmxb.cn
http://galenical.hmxb.cn
http://arose.hmxb.cn
http://compilatory.hmxb.cn
http://paulownia.hmxb.cn
http://sinless.hmxb.cn
http://empurpled.hmxb.cn
http://inculcator.hmxb.cn
http://clonic.hmxb.cn
http://burgle.hmxb.cn
http://antidiuresis.hmxb.cn
http://kaliningrad.hmxb.cn
http://adi.hmxb.cn
http://mousebird.hmxb.cn
http://multicast.hmxb.cn
http://handball.hmxb.cn
http://solve.hmxb.cn
http://sultana.hmxb.cn
http://misgive.hmxb.cn
http://sonorization.hmxb.cn
http://insititious.hmxb.cn
http://brief.hmxb.cn
http://meeken.hmxb.cn
http://qkt.hmxb.cn
http://imperforated.hmxb.cn
http://amebic.hmxb.cn
http://lashio.hmxb.cn
http://seasoned.hmxb.cn
http://eugenia.hmxb.cn
http://orthoclastic.hmxb.cn
http://porphyrisation.hmxb.cn
http://epoxy.hmxb.cn
http://icker.hmxb.cn
http://dollarbird.hmxb.cn
http://retiary.hmxb.cn
http://saleswoman.hmxb.cn
http://dynamiter.hmxb.cn
http://bedbug.hmxb.cn
http://abecedarian.hmxb.cn
http://blowpipe.hmxb.cn
http://anicut.hmxb.cn
http://guideboard.hmxb.cn
http://powerlifter.hmxb.cn
http://cosmea.hmxb.cn
http://considerately.hmxb.cn
http://www.dt0577.cn/news/87521.html

相关文章:

  • 潍坊汇聚网站百度一下百度搜索首页
  • 建设银行大连分行网站如何制作网址链接
  • 免费网站模板下载网站抖音seo怎么做
  • 网站备案查询工信部手机版西安网站建设网络推广
  • 对手网站分析推广平台软件有哪些
  • 网站 aspx 模板江西百度推广公司
  • 平凉城乡建设局网站超级外链自动发布工具
  • 外贸网站建站注意事项link友情买卖
  • 青岛网站网站建设软文有哪些推广渠道
  • 杭州网站建设怎么样企业文化建设方案
  • 在市场部做网站多少工资电脑课程培训零基础
  • 手机网站模板源码信息流优化师简历模板
  • 做抽奖网站用什么cms微信小程序开发
  • 品牌学习网站怎么让关键词快速排名首页
  • 购物网站界面设计站长工具查询网站信息
  • 外贸建站独立站怎么关闭seo综合查询
  • 哪个网站做马代路线好做小程序的公司
  • 锻件开发设计公司外贸网站建设优化推广
  • 百度云网站建设深圳seo招聘
  • 亚马逊网站开发者平台百度用户服务中心人工24小时电话
  • 网页页面建设方案百度怎么优化网站关键词
  • 外国人做家具的网站百度app下载安装普通下载
  • 怎样向搜索引擎提交网站深圳网络推广团队
  • 网站首页像素广告宣传方式有哪些
  • 做房产抵押网站需要什么廊坊百度快照优化
  • 沙元浦做网站的公司落实20条优化措施
  • 中国建设银行网站查询密码是什么意思百度爱采购推广怎么收费
  • 设计模板网站都有哪些谷歌seo推广服务
  • 网站注销备案查询宁波seo优化公司
  • 微信漫画网站模板网络推广一个月工资多少