ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

接口测试Ⅴ——Moco框架、Fiddler、webservice

2021-04-30 22:57:13  阅读:259  来源: 互联网

标签:Fiddler webservice json 接口 3.4 Moco mock 请求


文章目录

一、Mock

1、Mock测试

  • 介绍
    • mock:就是对于一些难以构造的对象,使用虚拟的技术来实现测试的过程
    • mock测试:在测试过程中,对于某些不容易构造或者不容易获取的对象,可以用一个虚拟的对象来代替的测试方 法。
    • 接口Mock测试:在接口测试过程中,对于某些不容易构造或者不容易获取的接口,可以用一个模拟接口来代替。
  • 作用
    • 解除对第三方接口的依赖
    • 替换查询速度较慢的接口
    • mock难以构造的异常
    • 可以搭建mock服务器,提前编写接口测试用例代码并行进行工作。
  • 实现方式
    • 使用第三方的mock平台来实现mock(收费)
    • 自己开发一个mock平台(了解)
      • python + flask 实现mock
    • 使用mock工具搭建一个mock平台(知道)
      • 使用moco工具实现mock平台

2、Python + Flask实现mock平台搭建

  • 介绍:flask是一个基于python开发的轻量级web应用程序框架
  • 安装flask:
    • 安装: pip install Flask
    • 验证: flask --version
  • 演示案例:
    • 编写Flask程序
import json
from flask import Flask, jsonify,request

# 创建一个应用对象
app = Flask(__name__)

# 定义视图函数,设置路由规则
@app.route("/index")
def index():
	print("访问的index主页")
	return "hello mock"

# {"mobile":"13800000002", "password":"123456"}
@app.route("/api/sys/login",methods=["POST"])
def login():
	result = json.loads(request.get_data().decode("utf-8")) # 字典形式的请求体数据
	mobile = result.get("mobile")
	password = result.get("password")
	print(mobile,password)
	if mobile =="13800000002" and password == "123456":
	data = {
		"success": True,
		"code": 10000,
		"message":"操作成功!",
		"token": "ajsdfj-12312-szs-fd-dfs"
	}
	else:
	data = {
		"success": False,
		"code": 99999,
		"message": "抱歉,系统繁忙,请稍后重试",
		"token": None
	}
	return data


if __name__ == '__main__':
	# 启动WEB服务器
	app.run()
  • 启动运行
    • 手动运行
    • pycharm运行
  • 访问
    • get(浏览器)
    • post(postman)

3、Moco框架

3.1 介绍

  • Moco是一个简单搭建模拟服务器的框架(工具),可以模拟http、https、socket等协议
  • 基于Java开发的开源项目,Github地址:https://github.com/dreamhead/moco
  • 原理:Moco会根据一些配置,启动一个真正的HTTP服务(会监听本地的某个端口)。当发起的请
    求满足某个 条件时,就会返回指定的响应数据

3.2 环境搭建

  • 前提:Java运行环境
  • 安装:moco-runner-1.1.0-standalone.jar

3.3 运行Moco

1、创建配置文件

[
	{
		"description": "首页",
		"request": {
			"uri": "/index"
		},
		"response": {
			"text": "hello world"
		}
	}
]

2、启动http服务

java -jar <path-to-moco-runner> http -p <monitor-port> -c <configuration-file>
<path-to-moco-runner> :jar包的路径

<monitor-port>:http服务监听的端口

<configuration-file>:配置文件路径

3、接口访问

3.4 常用配置参数

3.4.1 定义请求方法

通过在requests中通过method来指定请求方法

3.4.2 定义查询参数

可以通过queries来定制

3.4.3 定义请求头

通过headers参数定义

3.4.4 定义form格式的请求体

通过forms定义表单格式请求体
3.4.5 定义json格式的请求体
可以通过json参数定义请求体
3.4.6 设置响应的状态码
3.4.7 设置返回json格式的响应体数据
3.4.8 解决中文乱码问题
设置响应的Content-Type类型中charset=gbk
3.5 Moco引入配置文件
首先需要定义被依赖的多个配置文件
login.json的文件
index.json文件
定义config.json配置文件
把三个数据文件放在一起
重新使用java命令通过-g参数指定config.json
完整命令是:

java -jar moco-runner-0.11.0-standalone.jar http -p 8092 -g config.json

二、Fiddler

详情

1、 抓包工具

  • 通过抓包工具截取观察网站的请求信息,帮助我们更深入的了解网站
  • 通过抓包工具截取、观察网站的请求与返回信息,帮助测试进行BUG定位与描述
  • 通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能

2、Fiddler原理

  • 请求先发送给Fiddler,Fiddler接收请求后转发给服务器
  • 服务器处理请求后将响应数据返回给Fiddler,Fiddler在转发给客户端(浏览器)

3、基础使用

抓包、删除请求、设置过滤

4、高级使用

设置断点、AutoResponder、Composer、弱网测试、HTTPS请求

三、webservice

1、webservice介绍

  • 简单的说webservice是一个跨语言跨平台的技术。
  • 使用webservice进行接口测试时,不需要知道每一种语言和操作系统。

2、webservice的工作原理

  • webservice主要使用4个核心技术
    • HTTP:使用http来传输数据
    • XML:使用XML来规定数据的请求体内容和响应体内容.webservice能够跨语言和跨平台的原因就是因为XML能跨语言,跨平台
    • SOAP:是一个规定XML内容规范的一个协议。(规定XML中结构、元素、参数的作用和使用方法)
    • WSDL:是一个XML形式的说明书,用来描述webservice中的相关信息(接口信息)

3、webservice和http接口区别

  • http接口
    • http接口一般传输的是表单数据和json数据,响应数据也一般是json类型
    • http接口请求方法,一般是GET,POST,PUT,DELETE
  • webservice接口
    • webservice采用soap协议传输数据。请求数据和响应数据都是XML类型
    • webservice的请求方法都是POST请求
    • webserivce支持更复杂的数据类型

4、webservice的接口测试工具

  • Postman(主要学习)
  • Jmeter
  • SoupUI
  • Python + requests

5、 演示案例

操作步骤:
1. 新建请求 getSupportCity
2. 设置请求方式为POST
3. 输入请求URL: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
4. 设置请求头: Content-Type: application/soap+xml; charset=utf-8
5. 设置请求体数据:
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
	<soap12:Body>
		<getSupportCity xmlns="http://WebXml.com.cn/">
			<byProvinceName>北京</byProvinceName>
		</getSupportCity>
	</soap12:Body>
</soap12:Envelope>
6. 发送请求,查看响应结果

标签:Fiddler,webservice,json,接口,3.4,Moco,mock,请求
来源: https://blog.csdn.net/qq_31870305/article/details/116310074

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有