国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

拋磚引玉:Redis 與 接口自動化測試框架的結合

來源: 責編: 時間:2023-09-18 21:41:49 403觀看
導讀接口自動化測試已成為保證軟件質量和穩定性的重要手段。而Redis作為一個高性能的緩存數據庫,具備快速讀寫、多種數據結構等特點,為接口自動化測試提供了強大的支持。勇哥這里粗略介紹如何結合Python操作Redis,并將其應用

接口自動化測試已成為保證軟件質量和穩定性的重要手段。而Redis作為一個高性能的緩存數據庫,具備快速讀寫、多種數據結構等特點,為接口自動化測試提供了強大的支持。勇哥這里粗略介紹如何結合Python操作Redis,并將其應用于接口自動化測試框架中,以提升測試效率和數據管理能力。I3928資訊網——每日最新資訊28at.com

I3928資訊網——每日最新資訊28at.com

Redis 基本操作

(1) Redis的安裝和配置I3928資訊網——每日最新資訊28at.com

在開始之前,首先需要安裝Redis并進行相應的配置:I3928資訊網——每日最新資訊28at.com

  • redis官網:https://redis.io/
  • redis中文網:https://www.redis.cn/

安裝完成后,確保Redis服務已成功啟動,并正確配置了連接信息(如主機地址、端口號、密碼等),這塊信息就不過多介紹了喲!I3928資訊網——每日最新資訊28at.com

(2) Redis與接口自動化測試框架的集成I3928資訊網——每日最新資訊28at.com

使用Python操作Redis需要導入相應的客戶端庫,例如:I3928資訊網——每日最新資訊28at.com

pip install redisimport redis

(3) 初始化Redis連接I3928資訊網——每日最新資訊28at.com

在接口自動化測試框架的初始化過程中,可以添加連接Redis的代碼,確保測試過程中能夠與Redis建立連接。I3928資訊網——每日最新資訊28at.com

class TestFramework:    def __init__(self):        self.redis = redis.Redis(host='localhost', port=6379, password='your_password')

操作 Redis 常用命令

(4) 字符串操作I3928資訊網——每日最新資訊28at.com

# 設置鍵為"key1"的字符串值為"Hello, Redis!"r.set('key1', 'Hello, Redis!')# 獲取鍵為"key1"的字符串值value = r.get('key1')print(value)  # 輸出: b'Hello, Redis!'

(5) 列表操作I3928資訊網——每日最新資訊28at.com

# 向名為"list1"的列表左側插入元素r.lpush('list1', 'item1')r.lpush('list1', 'item2')r.lpush('list1', 'item3')# 獲取名為"list1"的列表所有元素items = r.lrange('list1', 0, -1)print(items)  # 輸出: [b'item3', b'item2', b'item1']

(6) 哈希表操作I3928資訊網——每日最新資訊28at.com

# 設置名為"hash1"的哈希表字段和值r.hset('hash1', 'field1', 'value1')r.hset('hash1', 'field2', 'value2')# 獲取名為"hash1"的哈希表字段和值value1 = r.hget('hash1', 'field1')value2 = r.hget('hash1', 'field2')print(value1, value2)  # 輸出: b'value1' b'value2'

(7) 集合操作I3928資訊網——每日最新資訊28at.com

# 向名為"set1"的集合添加元素r.sadd('set1', 'item1')r.sadd('set1', 'item2')r.sadd('set1', 'item3')# 獲取名為"set1"的集合所有元素items = r.smembers('set1')print(items)  # 輸出: {b'item1', b'item2', b'item3'}

以上就是 redis 的常見操作,是不是比寫 `sql` 語句簡單,是不是 `so easy!!`I3928資訊網——每日最新資訊28at.com

Redis 在接口自動化中的應用

(1) 封裝Redis操作方法I3928資訊網——每日最新資訊28at.com

為了方便接口自動化測試框架使用,又要開始封裝了,簡單封裝代碼如下:I3928資訊網——每日最新資訊28at.com

class RedisClient:    def __init__(self):        self.redis = redis.Redis(host='localhost', port=6379, password='your_password')    def set_data(self, key, value, expire_time=None):        self.redis.set(key, value)        if expire_time is not None:            self.redis.expire(key, expire_time)    def get_data(self, key):        return self.redis.get(key)    def delete_data(self, key):        self.redis.delete(key)    def hash_set_field(self, key, field, value):        self.redis.hset(key, field, value)    def hash_get_field(self, key, field):        return self.redis.hget(key, field)    def hash_delete_field(self, key, field):        self.redis.hdel(key, field)

接口自動化中比較常用的是字符串了,為了滿足更多場景的需求,我們價格哈希數據結構的封裝操作方法。I3928資訊網——每日最新資訊28at.com

接口自動化測試中的常見應用場景

(1) 測試數據管理I3928資訊網——每日最新資訊28at.com

接口自動化測試中,將測試數據存儲在Redis中,如用戶信息、配置參數等。通過使用封裝的Redis操作方法,可以方便地進行數據的增、刪、改、查。I3928資訊網——每日最新資訊28at.com

redis_client= RedisClient()redis_client.set_data('user:1', '{"name": "kira", "age": 18}')user = redis_client.get_data('user:1')print(user.decode())  # 輸出:{"name": "kira", "age": 18}

(2) 處理接口依賴數據I3928資訊網——每日最新資訊28at.com

一般步驟如下:I3928資訊網——每日最新資訊28at.com

  • 先明確接口的依賴關系: 誰調用誰之前要先調用誰或者誰
  • 設置數據到redis:也就是接口B執行成功后,將關鍵數據存redis,可以使用我們封裝的set,健一般是一個標識符,值就是接口的返回值
  • 從redis獲取數據:比如接口A執行前,先獲取B數據存Redis,然后調用redis獲取數據給A或者B、C 等等。

上代碼:I3928資訊網——每日最新資訊28at.com

redis_client = RedisClient()# 第一個接口,設置依賴數據def first_api():    response = requests.get('https://api.example.com/first')    data = response.json()    redis_client.set_data('key', data['value'])def second_api():    # 獲取依賴數據    dependency_data = redis_client.get_data('key')    response = requests.post('https://api.example.com/second', data={'data': dependency_data})    result = response.json()    # 處理接口響應結果if __name__ == '__main__':    first_api()    second_api()

(3) 緩存管理I3928資訊網——每日最新資訊28at.com

遇到需要頻繁訪問的接口,怎么半?I3928資訊網——每日最新資訊28at.com

為了減少接口調用的開銷和提高測試效率,可以使用Redis作為緩存工具,將接口的響應結果緩存起來,以便后續的測試用例重復使用。I3928資訊網——每日最新資訊28at.com

redis_client= RedisClient()def get_user_info(user_id):    cache_key = f'user:{user_id}'    user_info = redis_client.get_data(cache_key)    if not user_info:        # 調用接口獲取用戶信息        user_info = api.get_user_info(user_id)        redis_client.set_data(cache_key, user_info, expire_time=3600)    return user_info

咱們首先檢查Redis緩存中是否已存在對應的用戶信息,如果不存在,則調用接口獲取用戶信息并將其存儲到Redis緩存中,以備后續使用。同時,通過設置expire_time參數,可以為緩存數據設置過期時間,避免過期數據的使用。I3928資訊網——每日最新資訊28at.com

(4) 并發測試I3928資訊網——每日最新資訊28at.com

在自動化測試中,針對并發場景的測試很重要,我們可以并發模擬一些實際場景,比如:利用redis的原子性和分布式鎖,為每個用戶創建一個唯一的標識,存到redis中,這樣不同用戶請求就可以通過檢查和比對redis的結果來模擬并發訪問了,例如:I3928資訊網——每日最新資訊28at.com

# 創建 Redis 客戶端redis_client = RedisClient()def get_user_info(user_id):    cache_key = f'user:{user_id}'    user_info = redis_client.get_data(cache_key)    if not user_info:        # 調用接口獲取用戶信息        response = requests.get(f'http://127.0.0.1:5000/?user_id={user_id}')        if response.status_code == 200:            user_info = response.text            print(user_info)            redis_client.set_data(cache_key, user_info, expire_time=3600)        else:            print(f"Failed to retrieve user info for user_id: {user_id}. Status code: {response.status_code}")    return user_info# 并發測試函數def run_concurrent_test(user_ids):    with concurrent.futures.ThreadPoolExecutor() as executor:        # 提交任務到線程池        future_to_user_id = {executor.submit(get_user_info, user_id): user_id for user_id in user_ids}        # 處理返回結果        for future in concurrent.futures.as_completed(future_to_user_id):            user_id = future_to_user_id[future]            try:                user_info = future.result()                print(f"user_id: {user_id}; user_info: {user_info}")            except Exception as e:                print(f"Error occurred for user_id: {user_id}, Error: {str(e)}")if __name__ == '__main__':    u_ids = [i for i in range(10, 99)]    run_concurrent_test(u_ids)

我們創建線程池,使用submit 將任務(get_user_info)提交到線程池,每個任務一個 user_id,這里簡單打印每個用戶id,對于的信息,通過并發執行多任務,可以同一時間內獲取多個用戶信息,提高測試效率。I3928資訊網——每日最新資訊28at.com

本文鏈接:http://m.rrqrq.com/showinfo-26-10470-0.html拋磚引玉:Redis 與 接口自動化測試框架的結合

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 分布式事務原理及解決方案

下一篇: 使用上 Spring 的事件機制,真香!

標簽:
  • 熱門焦點
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
欧美xxx久久| 美女脱光内衣内裤视频久久网站 | 亚洲已满18点击进入久久| 欧美经典一区二区三区| 久久欧美中文字幕| 精品国产乱码久久| 精品成a人在线观看| 欧美精品一区二区三区蜜桃| www亚洲一区| 欧美国产精品久久| 亚洲人成网站精品片在线观看| 亚洲婷婷综合久久一本伊一区| 亚洲日韩欧美一区二区在线| 一卡二卡欧美日韩| 视频一区中文字幕| 国产在线精品一区二区三区不卡 | 国产精品乱子乱xxxx| 一本一本大道香蕉久在线精品| 欧美系列亚洲系列| 精品国免费一区二区三区| 久久精品男人天堂av| 自拍偷拍国产精品| 天天综合色天天| 国产在线国偷精品产拍免费yy| 成人黄色av电影| 伊人久久大香线蕉av超碰演员| 国产精品视频免费观看| 日本电影欧美片| 精品久久国产字幕高潮| 中文字幕免费一区| 首页亚洲欧美制服丝腿| 韩日av一区二区| 亚洲欧美综合| 欧美中文日韩| 精品国产免费人成电影在线观看四季| 中文字幕欧美区| 五月激情丁香一区二区三区| 国产精品一二三四| 国模一区二区三区| 欧美午夜不卡在线观看免费| 精品国产乱码久久久久久久| 伊人夜夜躁av伊人久久| 久久99久国产精品黄毛片色诱| eeuss鲁一区二区三区| 在线亚洲成人| 日韩午夜av一区| 亚洲一区二区视频在线观看| 国产精品一区久久久久| 亚洲国产精品久久久久婷婷老年 | 5月丁香婷婷综合| 最近日韩中文字幕| 国产毛片一区二区| 欧美视频不卡| 欧美日韩一区 二区 三区 久久精品| 久久久综合网站| 成人av电影免费在线播放| 国产欧美一区二区三区另类精品| 日韩一区国产二区欧美三区| 亚洲精品成人精品456| 成人毛片视频在线观看| 久热re这里精品视频在线6| 久久久影视传媒| 久久精品72免费观看| 亚洲日本视频| 精品国产一二三区| 极品少妇xxxx精品少妇| 国产精品一区在线播放| 国产性色一区二区| 国产精品 欧美精品| 色综合久久六月婷婷中文字幕| 国产欧美综合在线观看第十页| 捆绑调教美女网站视频一区| 国产三区二区一区久久| 国产三区在线成人av| 极品瑜伽女神91| 欧洲精品一区二区三区在线观看| 国产精品传媒在线| 91天堂素人约啪| 欧美一区永久视频免费观看| 天堂在线一区二区| 国产日韩欧美一区二区三区在线观看 | 青青青爽久久午夜综合久久午夜| 亚洲激精日韩激精欧美精品| 精品免费视频.| 国产一区二区按摩在线观看| 欧美专区18| 亚洲一区欧美一区| 亚洲三级国产| 亚洲欧美日韩在线| 亚洲麻豆av| 国产精品护士白丝一区av| 欧美激情五月| 久久免费看少妇高潮| 成人精品免费视频| 日韩一区二区中文字幕| 国产精品99久| 欧美一区二区三区啪啪| 激情文学综合插| 欧美精品久久99| 国内成人自拍视频| 欧美欧美欧美欧美| 国产美女一区二区三区| 欧美精品一卡二卡| 黄网站免费久久| 制服.丝袜.亚洲.中文.综合| 九九久久精品视频| 欧美精品久久久久久久久老牛影院| 毛片av中文字幕一区二区| 欧美中文字幕一区二区三区| 韩国三级中文字幕hd久久精品| 欧美日韩中文精品| 国产麻豆91精品| 欧美成人官网二区| 91色在线porny| 国产精品毛片久久久久久久| 国内精品亚洲| 亚洲午夜免费电影| 在线看一区二区| 国产91色综合久久免费分享| 26uuuu精品一区二区| 午夜欧美精品| 亚洲一区二区三区四区五区黄| 久久久久久久久久码影片| 精品中文字幕一区二区| 精品久久久久久最新网址| 亚洲婷婷在线| 日韩中文欧美在线| 日韩欧美一级二级三级久久久| 91婷婷韩国欧美一区二区| 国产精品亚洲第一区在线暖暖韩国| 欧美一级理论片| 红杏aⅴ成人免费视频| 亚洲国产精品久久久久秋霞影院| 欧美中文字幕不卡| 91麻豆高清视频| 亚洲女同女同女同女同女同69| 久久久夜精品| 91在线视频免费观看| 一区二区三区四区国产精品| 欧美日韩一区二区三区高清| 91视频你懂的| 日韩成人一区二区三区在线观看| 欧美一区二区视频在线观看2022| 亚洲午夜极品| 国模套图日韩精品一区二区| 国产精品女人毛片| 色婷婷久久一区二区三区麻豆| www.成人网.com| 日韩和欧美的一区| 久久蜜桃一区二区| 色94色欧美sute亚洲线路一ni | 欧美色男人天堂| 国产真实久久| 黄页视频在线91| 亚洲女爱视频在线| 欧美一卡二卡在线| 亚洲一区二区网站| 成人免费精品视频| 日本欧美韩国一区三区| 亚洲国产精品传媒在线观看| 欧美性受极品xxxx喷水| 黄色av一区| 国产精品亚洲第一 | 国产精品久久国产愉拍| 91一区一区三区| 日本欧美一区二区三区乱码| 亚洲欧洲成人自拍| 日韩欧美一级片| 欧美色图在线观看| 国产精品久久波多野结衣| 欧美凹凸一区二区三区视频| 久久精品国产免费看久久精品| 亚洲精品美国一| 国产日产欧美一区| 91精品国产欧美一区二区成人| 亚洲影院在线| 极品日韩久久| 91视频91自| 白白色 亚洲乱淫| 精品一区二区免费| 日韩高清在线观看| 一区二区三区日韩| 中文字幕一区在线观看| 久久蜜桃av一区精品变态类天堂| 91精品欧美一区二区三区综合在| 色综合久久天天| 久久久久久亚洲精品杨幂换脸| 亚洲每日在线| 亚洲国产婷婷| 国自产拍偷拍福利精品免费一 | 成人午夜在线视频| 国产麻豆日韩欧美久久| 久久国产欧美日韩精品| 日韩av一级电影| 香蕉久久夜色精品国产使用方法 | 亚洲色图视频网站| 国产精品伦理一区二区| 欧美国产精品一区二区| 国产清纯白嫩初高生在线观看91| 久久精品一区二区三区四区|