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

建立网站费用多少seo资源

建立网站费用多少,seo资源,做非法网站怎么规避,网站水印设置作教程Pact是一个契约测试框架,有多种语言实现,本文以基于pact-python探究契约测试到底是什么?以及如何实现 官网:自述文件 |契约文档 (pact.io) 契约测试步骤 1、为消费者写一个单元测试,让它通过,并生成契约…

Pact是一个契约测试框架,有多种语言实现,本文以基于pact-python探究契约测试到底是什么?以及如何实现

官网:自述文件 |契约文档 (pact.io)

契约测试步骤

1、为消费者写一个单元测试,让它通过,并生成契约文件。

2、在生产者服务执行该契约文件,验证测试是否通过。

 安装pact-Python

官方介绍的是直接使用pip下载,但是国内下载有问题。

下载方法参考:契约测试第一步--pact-python安装_51CTO博客_pact 契约测试

下载安装包:

https://pypi.org/project/pact-python/0.19.0/#modal-close

 点击下载后手动解压:

入主目录,与setup.py同级,进入命令行执行:

python setup.py build      

python setup.py install

 消费者测试

新建项目,创建contract_miku.py文件

 代码

# -*- coding: utf-8 -*-
"""
@author dongfangbubai
@date 2023年07月27日 18:08:14
@packageName 
@className contract_miku
@describe 模拟消费者去请求真实的生产者
"""
import atexit
import unittest
# from query import get_cartoon_characters
import requestsfrom pact import Consumer,Provider
#构造pact对象,定义消费者服务的名字并给他绑定一个生产者服务
pact = Consumer('consumer').has_pact_with(Provider('provider'))
pact.start_service()#start mock service
# # #注册推出的时候关闭pact服务
atexit.register(pact.stop_service)class GetMikuInfoContract(unittest.TestCase):def test_miku(self):#定义期望的结果expected={"salary":20000,"name":"miku","national":"Chinese","contract":{"Email":"dongfangbubai@163.com","Phone":"13265523433"}}#定义expected响应头headers={"Content-Type":"application/json"}#定义预期请求以及响应的方式(consumer will request in this way and expected to get the repsponed from the procide)(pact.upon_receiving("a request for UserA")#请求的名字.with_request(method="GET",path='/information',query={"name":"miku"}) #期望的请求方法,请求url.will_respond_with(200,headers, expected)#期望请求的返回)#定义消费者服务向模拟生产者发生请求,并获得响应#the url and port is the mockservice not real provider with pact:#定义pactresult=requests.get('http://127.0.0.1:1234/information',{"name":"miku"})print(result)print(result.headers)print(result.json())#做最后的断言self.assertEqual(result.json(),expected)
if __name__ == '__main__':unittest.main()

可以看到首先构造一个pact,并使用pact启动mock服务。

在具体的测试类和方法中采用了unittest测试框架,采用什么测试框架可以根据所使用的语言,这里也可以用pytest。js语言就可以用mocha框架。

在test_miku函数中定义了expected,headers,在pact中定义消费者预期的请求方式和响应结果。后续会根据这些生成契约。

在with pact里定义向mock服务的请求,最后断言请求的结果与预期是否一致。

需要注意的是,with pact里的url是pact带的mock服务对应的1234端口,而不是真实的服务,也不能填写真实服务。

运行结果

使用python方式运行contract_miku.py

在窗口输出了一些关于ruby编码的提示,对结果好像没有影响。

在result.json的打印中可以看到打印的内容与我们的expected内容一致。

测试用例为通过状态。其实消费者端的单元测试代码无论expected怎么写,测试用例都是通过的,因为我们的目的就是写一个单元测试让测试用例通过。

契约文件

代码运行后,会生成consumer-provider.json文件,这就是契约文件。

契约文件里定义了consumer,provider的名称,和交互。

交互包括request,response,请求body。

契约文件就是消费者的需求,而生产者应该满足这些需求。

 生产者测试

这里采用flask框架生成了一个接口

api_server.py

# -*- coding: utf-8 -*-
"""
@author 
@date 2023年07月28日 09:31:25
@packageName 
@className api_server
@describe TODO
"""
import jsonfrom flask import Flask, request, jsonifyapp = Flask(__name__)rsp_body=[{"salary":20000,"name":"miku","national":"Chinese","contract":{"Email":"dongfangbubai@163.com","Phone":"13265523433"}}]
@app.route('/information')
def test():get_name=request.args.get("name","").lower()print(get_name)if get_name=='miku':rsp=jsonify(rsp_body[0])elif get_name=='nanpha':rsp = jsonify(rsp_body[1])else:rsp=jsonify({'status':'404 not found'})return rspif __name__ == '__main__':app.run(host='0.0.0.0',port=8080)

运行api_server.py,使用postman请求接口

 测试生产者服务只需要在命令行执行

pact-verifier --provider-base-url=http://localhost:8080 --pact-url=consumer-provider.json

 这里指定了生产者服务的url和契约文件即消费者测试生成的文件

运行结果显示没有失败,说明执行成功。

可以看到生产者服务返回的状态码,响应体和响应头都与契约文件匹配,所以验证成功。

契约测试与接口测试和集成测试的区别

 

 

 参考

【软件测试课程中——微服务架构测试中的契约测试。】 https://www.bilibili.com/video/BV1Qf4y1F76L/?p=4&share_source=copy_web&vd_source=1aab39b433529f6f488e61847b342350

http://www.hengruixuexiao.com/news/41668.html

相关文章:

  • 如何在WordPress上传主题目录重庆seo整站优化系统
  • 怎么做网站盗号seo流量是什么
  • 张家港做英文网站百度识图在线识图
  • 设计方案表网站名称新开传奇网站发布站
  • 怎么快速提升网站权重福州百度推广排名
  • wordpress设置多域名多站点网络舆情监测
  • 哪里可以做免费的物流网站搜索引擎优化的简称是
  • 链接缩短在线生成器自己怎么做网站优化
  • 几年前备案的网站现在网站不在了备案号还在吗seo网络优化师
  • 织梦网站档目管理空白泰安百度推广代理
  • 仿站容易还是建站容易百度推广公司哪家比较靠谱
  • 做网站需要的技术软件公司
  • 湖南营销型网站建设价格济宁seo推广
  • 左右结构网站什么叫seo
  • 网站建设心得重庆网站排名优化教程
  • 德州极速网站建设百家号北京seo管理
  • 哪个网站做国内销海外的长沙网址seo
  • 商务信息网站怎么做百度搜索浏览器
  • 单页网站怎么优化百度自媒体怎么注册
  • 温州互联网前十名公司在线seo关键词排名优化
  • 东莞哪家网站建设好旺道seo怎么优化网站
  • wordpress app封装合肥网站关键词优化公司
  • 移动平台3g手机网站前端开发布局技巧汇总十大骗子教育培训机构
  • 百度用户服务中心人工电话优化关键词快速排名
  • 合肥营销型网站建设公司长沙网络推广服务
  • 欧美做视频网站中文域名查询官网
  • 301网站目录百度集团公司简介
  • 科技类公司网站设计微信软文广告经典案例
  • 免费网站建站一级av建站cms
  • 老客户网站建设建网站免费