软测扩充

一、 mock

1. 什么是mock?

①测试桩:模拟被测对象的返回,用于测试
②mock:通常指mock server ,模拟服务返回的接口数据,用于前端开发、第三方接口联调想·

2. 为什么要学习mock?

①前后端开发进度不一致,前端开发快于后端开发,前端需要一个假的接口用于模拟后端数据返回。
②项目用到第三方接口,三方接口没有开发好或者没有开发环境

3. 如何使用mock?

①利用抓包工具fiddler,但是不方便而且也不专业
②用web框架模拟:Django、flask(结构简单,容易入门)

4. flask使用

①安装flask:pip install flask
②使用flask

  • 案例一:最简单的get请求
# 服务端
# 导包
from flask import Flask

# 实例化一个web服务对象,app 这个名字是预定俗成的
app = Flask(__name__)

# 定义一个路由 -- 访问服务器的根目录就能得到结果
@app.route('/')
# 创建一个方法来处理请求
def hello():
    data = {
        "error_code": 0,
        "reason": "success",
        "result": {
            "data": {
                "conclusion": "独营生意,和气吉祥,排除万难,必获成功",
                "analysis": "主人性格类型:[大胆行事冲动派型],其具体表现为:爱好追寻刺激,有不理后果大胆行事的倾向。崇尚自由奔放的恋爱,会拼尽全力爱一场,是就算明知无结果都在所不惜的冲动派。"
            }
        }
    }
    return data

# 入口
if __name__ == '__main__':
    app.run('127.0.0.1', '9090')

# 客户端
import requests
res = requests.get("http://127.0.0.1:9090/")
print(res.text)
  • 案例二:构建post请求的响应
# 服务端
# 导包
from flask import Flask,request

# 实例化一个web服务对象,app 这个名字是预定俗成的
app = Flask(__name__)

# 构造一个接受post请求的响应
@app.route('/post',methods = ["POST"])
def test_post():
    # 使用request处理请求发送过来的参数
    id = request.form["id"]
    name = request.form["name"]
    return "接受到请求发送过来的数据:"+name+id

# 入口
if __name__ == '__main__':
    app.run('127.0.0.1', '9090')

# 客户端
import requests

body = {
    "id": "007",
    "name": "anfly"
}
res = requests.post("http://127.0.0.1:9090/post", data=body)
print(res.text)
  • 案例三:复杂的post
# 服务端
# 导包
from flask import Flask, request, json

# 实例化一个web服务对象,app 这个名字是预定俗成的
app = Flask(__name__)

# 处理稍微复杂的post请求
@app.route("/post/food", methods=["POST"])
def post_food():
    # 拿到客户端返回的数据
    res = json.loads(request.get_data())
    limit = res["limit"]
    id = res["stage_id"]
    page = res["page"]

    body = {
        "ret": 1,
        "data": [
            {
                "id": "8289",
                "title": "油焖大虾",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg",
                "collect_num": "1670",
                "food_str": "大虾 葱 生姜 植物油 料酒",
                "num": 1670
            },
            {
                "id": "2127",
                "title": "四川回锅肉",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2127.jpg",
                "collect_num": "1591",
                "food_str": "猪肉 青蒜 青椒 红椒 姜片",
                "num": 1591
            },
            {
                "id": "30630",
                "title": "超简单芒果布丁",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/31/30630.jpg",
                "collect_num": "1552",
                "food_str": "QQ糖 牛奶 芒果",
                "num": 1552
            },
            {
                "id": "9073",
                "title": "家常红烧鱼",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/10/9073.jpg",
                "collect_num": "1426",
                "food_str": "鲜鱼 姜 葱 蒜 花椒",
                "num": 1426
            },
            {
                "id": "10097",
                "title": "家常煎豆腐",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/11/10097.jpg",
                "collect_num": "1420",
                "food_str": "豆腐 新鲜红椒 青椒 葱花 油",
                "num": 1420
            },
            {
                "id": "10509",
                "title": "水煮肉片",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/11/10509.jpg",
                "collect_num": "1342",
                "food_str": "瘦猪肉 生菜 豆瓣酱 干辣椒 花椒",
                "num": 1342
            },
            {
                "id": "46968",
                "title": "红糖苹果银耳汤",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/47/46968.jpg",
                "collect_num": "1253",
                "food_str": "银耳 苹果 红糖",
                "num": 1253
            },
            {
                "id": "10191",
                "title": "麻婆豆腐",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/11/10191.jpg",
                "collect_num": "1224",
                "food_str": "豆腐 肉末 生抽 白糖 芝麻油",
                "num": 1224
            },
            {
                "id": "2372",
                "title": "皮蛋瘦肉粥",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2372.jpg",
                "collect_num": "1151",
                "food_str": "大米 皮蛋 猪肉 油条 香葱",
                "num": 1151
            },
            {
                "id": "2166",
                "title": "蚂蚁上树",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2166.jpg",
                "collect_num": "1145",
                "food_str": "红薯粉 肉 姜 蒜 花椒",
                "num": 1145
            },
            {
                "id": "2262",
                "title": "糖醋肉",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2262.jpg",
                "collect_num": "1082",
                "food_str": "猪肉 红椒 黄椒 洋葱 蛋清",
                "num": 1082
            },
            {
                "id": "9971",
                "title": "鱼香豆腐",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/10/9971.jpg",
                "collect_num": "1010",
                "food_str": "豆腐 木耳 胡萝卜 香葱 番茄酱",
                "num": 1010
            },
            {
                "id": "10172",
                "title": "干煸四季豆",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/11/10172.jpg",
                "collect_num": "993",
                "food_str": "四季豆 干辣椒 蒜头 酱油 糖",
                "num": 993
            },
            {
                "id": "2685",
                "title": "胡萝卜肉末蒸蛋",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2685.jpg",
                "collect_num": "929",
                "food_str": "胡萝卜 肉 蛋 生抽 盐",
                "num": 929
            },
            {
                "id": "9972",
                "title": "虎皮青椒",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/10/9972.jpg",
                "collect_num": "892",
                "food_str": "青辣椒 大蒜 香醋 白糖 生抽",
                "num": 892
            },
            {
                "id": "10437",
                "title": "叉烧排骨",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/11/10437.jpg",
                "collect_num": "806",
                "food_str": "排骨 李锦记叉烧酱 植物油 清水 油菜",
                "num": 806
            },
            {
                "id": "2892",
                "title": "“五行”彩蔬汤",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2892.jpg",
                "collect_num": "761",
                "food_str": "黑木耳 玉米 牛蒡 胡萝卜 西兰花",
                "num": 761
            },
            {
                "id": "2348",
                "title": "麻辣肉丝面",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2348.jpg",
                "collect_num": "760",
                "food_str": "面条 肉丝 淀粉 酱油 辣椒",
                "num": 760
            },
            {
                "id": "10044",
                "title": "土豆炖翅根",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/11/10044.jpg",
                "collect_num": "758",
                "food_str": "土豆 翅根 葱 姜 料酒",
                "num": 758
            },
            {
                "id": "33783",
                "title": "美人豆浆",
                "pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/34/33783.jpg",
                "collect_num": "758",
                "food_str": "黄豆 红豆 绿豆 黑豆 黑米",
                "num": 758
            }
        ]
    }
    if id != "1":
        return {"ret": 0,
                "res": "id有误"}
    if limit != "20":
        return {"ret": 0,
                "res": "页码一页数据太多"}
    if page != "1":
        return {"ret": 0,
                "res": "页数不存在"}
    return body

# 入口
if __name__ == '__main__':
    app.run('127.0.0.1', '9090')


# 客户端
import requests
body = {
    "stage_id": "1",
    "limit": "20",
    "page": "1"

}
res = requests.post("http://127.0.0.1:9090/post/food", json=body)
print(res.json())

5. Charles数据mock

①新建一个文件夹mock,在文件夹里新建一个mock.json文件,写上需要mock的数据,即json数据
②配置tools -> Map Local Settings

image.png

image.png

③浏览器获取数据
http://www.anfly.com:3000/api
④Charles可以抓包抓到数据

二、 埋点测试:https://www.jianshu.com/p/e3d987750f2b

三、接口依赖:json提取器和正则提取器

四、数据库优化

五、requests中token处理

1. requests获取token
 token = requests.post(url).text.get('token')
 2. 设置发送token,添加在header中
 header = {token : "token"}
 requests.post(url,headers=header)

六、服务端监控工具:Nmon使用方法

服务端监控工具:Nmon使用方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容