華為測試大牛Python+Django介面自動化怎麼寫的?

軟體測試愛碼士發表於2019-03-29

華為測試大牛Python+Django介面自動化怎麼寫的?

引言:

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

不皮了,進入正題。本文中用到的技術點有: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=url
        a_par=par
        res=requests.post(a_url,a_par)
        return res
    
    def get(self,url,par):
        a_url=url
        a_par=par
        res=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 postapi

def 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+y

def 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']=res
                d=json.dumps(d)
                return HttpResponse(d)
            else:
                return HttpResponse(u'輸入錯誤')
        else:
            return HttpResponse(u'輸入為空')
    else:
        return HttpResponse(u'方法錯誤')]
複製程式碼

add_args函式處理加法運算,index函式接收前端POST資料,處理資料並返回結果,post函式處理介面請求並返回結果

如果對軟體測試、介面測試、自動化測試、效能測試、LR指令碼開發、面試經驗交流。感興趣可以273462828(備註掘金愛碼士),群內會有不定期的發放免費的資料連結,這些資料都是從各個技術網站蒐集、整理出來的,如果你有好的學習資料可以私聊發我,我會註明出處之後分享給大家。

記得新增Django路由

在urls中加入:

華為測試大牛Python+Django介面自動化怎麼寫的?

執行專案:

華為測試大牛Python+Django介面自動化怎麼寫的?

輸入引數:

華為測試大牛Python+Django介面自動化怎麼寫的?
執行測試:

華為測試大牛Python+Django介面自動化怎麼寫的?

好了,以上就是一個簡單的Django介面測試開發,比較適合基礎不好的朋友入門學習

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

推薦閱讀

相關文章