測試開發:Python+Django實現接口測試工具

【測試開發天花板】Django+Vue+PyTest打造企業級自動化平臺|能寫進簡歷的硬核項目

?最近被幾個公司實習生整自閉了,沒有基礎,想學自動化又不知道怎么去學,沒有方向沒有頭緒,說白了其實就是學習過程中沒有成就感,所以學不下去。出于各種花里胡哨的原因,今天給大家整一個簡單又有成就感的接口自動化學習吧。

? ? ? ? ?不皮了,進入正題。本文中用到的技術點有:Python基礎、Django基礎、Request庫、一丟丟前端基礎。(考慮到大家零基礎,所以文中代碼編寫使用純新手手法)

1、先創建一個Django項目(具體請參考Django基礎入門教程)

2、創建一個模板,新增一個index.html頁面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Parker接口測試</title>
</head>
<body><h3 style="...">接口測試</h3><form action="/index/" method="post"><table><tr><td>接口地址:</td><td><input type="text" name="url" /> <br/></td></tr><tr><td>選擇方法:</td><td><input type="radio" name="fun" value="post" checked/>POST<input type="radio" name="fun" value="get" />GET</td></tr><tr><td>參數類型:</td><td><select name="leixin"><option value="json">Json</option><option value="xml">XML</option><option value="date">Data</option></select></td></tr><tr><td>測試數據:</td><td><textarea name="testdate" style="with:200px;height:60px;"></textarea></td></tr><tr><td>預期結果:</td><td><input type="text" name="exr" /> <br/></td></tr><tr><td>實際結果:</td><td>        <label>{{ data1 }}</label><br/></td></tr><tr><td>測試結果:</td><td><label>{{ data }}</label><br/></td></tr><tr><td><input type="submit" value="執行測試" />    </td></tr></table></form>
</body>
</html>

3、在項目包中新建py文件,封裝接口調用類

import requests
import json
class cls_api:def post(self,url,par):a_url=urla_par=parres=requests.post(a_url,a_par)return resdef get(self,url,par):a_url=urla_par=parres=requests.get(a_url,a_par)return res

4、在views文件中添加如下代碼

#-*- coding:utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
import json
from parkerapi import postapidef index(request):pt=postapi.cls_api()exr=request.POST.get('exr',None)data=""data1=""if request.method=='POST':data=pt.post(request.POST.get('url',None), json.loads(request.POST.get('testdate',None)))result=data.json()data1=result['message']if int(result['message']==int(exr)):data=u'測試通過' else:data=u'測試失敗' return render(request,"index.html",{"data":data,"data1":data1})def add_args(a,b):x=int(a)y=int(b)return x+ydef post(request):if request.method=='POST':d={}if request.POST:a=request.POST.get('a',None)b=request.POST.get('b',None)if a and b:res=add_args(a, b)d['message']=resd=json.dumps(d)return HttpResponse(d)else:return HttpResponse(u'輸入錯誤')else:return HttpResponse(u'輸入為空')else:return HttpResponse(u'方法錯誤')

add_args函數處理加法運算,index函數接收前端POST數據,處理數據并返回結果,post函數處理接口請求并返回結果

記得添加Django路由

在urls中加入:

運行項目

輸入參數:

執行測試:

好了,以上就是一個簡單的Django接口測試開發,比較適合基礎差的同學入門學習

學習最好的老師是興趣,興趣最好的培養就是成就感,希望大家在學習的過程中都能找到成就感。

【測試開發天花板】Django+Vue+PyTest打造企業級自動化平臺|能寫進簡歷的硬核項目

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917768.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TFS-2022《A Novel Data-Driven Approach to Autonomous Fuzzy Clustering》

核心思想 這篇論文的核心思想是提出一種全新的、數據驅動的自主模糊聚類&#xff08;Autonomous Fuzzy Clustering, AFC&#xff09;算法。其核心創新在于&#xff0c;它巧妙地結合了模糊聚類的靈活性和基于中位數&#xff08;medoids&#xff09;聚類的可解釋性&#xff0c;并…

ELK是什么

ELK 是一個廣受歡迎的開源技術棧&#xff0c;用于實時采集、處理、存儲、搜索、分析和可視化海量的日志數據&#xff08;log&#xff09;和機器生成的數據&#xff08;machine data&#xff09;&#xff0c;尤其是在 IT 系統監控、應用故障排查、安全分析和業務智能等領域應用廣…

[硬件電路-123]:模擬電路 - 信號處理電路 - 常見的高速運放芯片、典型電路、電路實施注意事項

一、高速運放常見芯片型號及特性高速運放&#xff08;高速運算放大器&#xff09;通常指帶寬&#xff08;GBW&#xff09;超過10MHz、壓擺率&#xff08;SR&#xff09;高于10V/μs的器件&#xff0c;適用于視頻處理、通信系統、高速數據采集等場景。以下是典型芯片及其特性&am…

關于解決WinRiver項目動態XmlElement的序列化與反序列化的問題

關于解決WinRiver項目動態XmlElement的序列化與反序列化的問題 一、WinRiver項目流量匯總XML內容 1.1、索引可變,索引下 XmlElement 元素內容固定 1.2、如何將對象 BottomTrack 的動態內容序列化為 XML ? 1.3、如何將 XML 動態內容反序列化為對象 BottomTrack ? 二、XML 動態…

【力扣 Hot100】 刷題日記

D3 128.最長連續序列 錯解 class Solution {public int longestConsecutive(int[] nums) {Arrays.sort(nums);int maxCnt 0;int cnt 0;for (int i 0; i < nums.length - 1; i) {if(nums[i] ! nums[i 1] - 1){//如果不連續&#xff0c;取cnt與maxCnt較大值&#xff0c…

飛算JavaAI編程插件:以AI之力賦能Java開發,讓編碼效率再升級

你是否希望自己敲代碼的時候總有一位大佬在你背后幫你保駕護航。想象一下&#xff0c;當你對著Java編輯器敲代碼時&#xff0c;身后站了位“隱形大神”——你剛敲出for&#xff0c;它就預判到你要遍歷集合&#xff0c;自動補全帶泛型的循環邏輯&#xff1b;你手滑把equals寫成&…

機器學習通關秘籍|Day 03:決策樹、隨機森林與線性回歸

目錄 一、決策樹 1、概念 2、基于信息增益的決策樹的建立 &#xff08;1&#xff09;信息熵 &#xff08;2&#xff09;信息增益 &#xff08;3&#xff09;信息增益決策樹建立步驟 3、基于基尼指數的決策樹的建立 4、API 二、隨機森林 1、算法原理 2、API 三、線性…

C++進階—C++的類型轉換

第一章&#xff1a;C語言中的類型轉換在C語言中&#xff0c;如果賦值運算符左右兩側類型不同&#xff0c;或者形參與實參類型不匹配&#xff0c;或者返回值類型與接收返回值類型不一致時&#xff0c;就需要發生類型轉化&#xff0c;C語言中總共有兩種形式的類型轉換&#xff1a…

基于Flask的微博話題多標簽情感分析系統設計

基于Flask的微博話題情感分析系統設計與實現 一、項目概述 本項目是一個輕量化的微博話題情感分析系統&#xff0c;通過Flask框架整合情感分析模型&#xff0c;實現對微博話題及評論的情感標簽識別與結果展示。系統面向普通用戶和研究者&#xff0c;提供簡單易用的操作界面&…

TDengine 中 TDgpt 的模型評估工具

模型評估工具 TDgpt 在企業版中提供預測分析模型和異常檢測模型有效性評估工具 analytics_compare&#xff0c;該工具能夠使用 TDengine 中的時序數據作為 回測依據&#xff0c;評估不同預測模型或訓練模型的有效性。該工具在開源版本中不可用使用評估工具&#xff0c;需要在其…

【DL學習筆記】DataLoader類功能和參數說明

文章目錄一、Dataset 與 DataLoader 功能介紹抽象類Dataset的作用DataLoader 作用兩者關系二、torch.utils.data.DataLoader代碼示例常用參數圖示num_workers設置多少合適數據加載子進程如何并行的pin_memorysampler兩種sampler順序采樣 SequentialSampler隨機采樣 RandomSampl…

JVM中年輕代、老年代、永久代(或元空間)、Eden區和Survivor區概念介紹

在Java虛擬機&#xff08;JVM&#xff09;中&#xff0c;內存管理是自動化的&#xff0c;這主要通過垃圾回收機制實現。JVM將堆內存劃分為不同的區域&#xff0c;以便更高效地管理和回收對象。以下是關于年輕代、老年代、永久代&#xff08;或元空間&#xff09;、Eden區和Surv…

譯 | BBC Studios團隊:貝葉斯合成控制方法SCM的應用案例

來自上傳文件中的文章《Using Causal Inference for Measuring Marketing Impact: How BBC Studios Utilises Geo Holdouts and CausalPy》 本篇介紹了在傳統A/B測試不適用時&#xff0c;如何利用貝葉斯合成控制方法和地理區域保留來評估營銷活動效果。其亮點在于通過構建“反事…

Web開發-PHP應用TP框架MVC模型路由訪問模版渲染安全寫法版本漏洞

我們先使用/index.php/index/index/test&#xff0c;就是圖中的test()方法 /index.php/index/index/index&#xff0c;這個回顯就是111 http://127.0.0.1:83/index.php/index/index/test2?x123456 public function test2() {$x$_GET[x];return $x; } 這里再做一個案例更詳細一…

FreeRTOS列表系統深度解析

FreeRTOS列表系統深度解析 一、核心數據結構 1. 列表控制塊 (List_t) typedef struct xLIST {volatile UBaseType_t uxNumberOfItems; // 當前列表項數量ListItem_t * pxIndex; // 遍歷指針&#xff08;用于輪詢調度&#xff09;MiniListItem_t xListEnd; …

《Linux編譯器:gcc/g++食用指南》

堅持用 清晰易懂的圖解 代碼語言&#xff0c;讓每個知識點變得簡單&#xff01; &#x1f680;呆頭個人主頁詳情 &#x1f331; 呆頭個人Gitee代碼倉庫 &#x1f4cc; 呆頭詳細專欄系列 座右銘&#xff1a; “不患無位&#xff0c;患所以立。” 《Linux編譯器&#xff1a;GCC…

SparkKV轉換算子實戰解析

目錄 KV算子 parallelizePairs mapToPair mapValues groupByKey reduceByKey sortByKey 算子應用理解 reduceByKey和groupByKey的區別 groupByKeymapValues實現KV數據的V的操作 改進用reduceByKey groupby通過K和通過V分組的模板代碼 問題集錦 寶貴的經驗 這里會…

深度解析 TCP 三次握手與四次揮手:從原理到 HTTP/HTTPS 的應用

TCP 的三次握手和四次揮手是網絡通信的基石&#xff0c;無論是 HTTP 還是 HTTPS&#xff0c;它們都依賴 TCP 提供可靠的傳輸層服務。本文將用萬字篇幅&#xff0c;結合 Mermaid 圖表和代碼示例&#xff0c;深入講解 TCP 三次握手、四次揮手的原理、過程、狀態變化&#xff0c;以…

Hyper-V + Centos stream 9 搭建K8s集群(一)

一、創建虛擬機一臺32G內存&#xff0c;16核心的Win11&#xff0c;已經安裝了Hyper-V 管理器。然后也下載了CentOS-Stream-9-latest-x86_64-dvd1.iso的鏡像文件。這里Hyper-V創建虛擬機的過程就不贅述了&#xff0c;如果出現虛擬機加載不到鏡像的問題&#xff0c;先把這個使用安…

Pygame如何制作小游戲

以下是 Pygame 的詳細使用指南&#xff0c;從安裝到開發完整游戲的步驟說明&#xff0c;包含代碼示例和最佳實踐&#xff1a; 一、安裝與環境配置 1. 安裝 Pygame pip install pygame2. 驗證安裝 import pygame pygame.init() print(pygame.version.ver) # 應輸出版本號&am…