zoukankan      html  css  js  c++  java
  • 华为测试大牛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中加入:

    运行项目

    输入参数:

    执行测试:

    好了,以上就是一个简单的Django接口测试开发,比较适合基础不好的朋友入门学习

    学习最好的老师是兴趣,兴趣最好的培养就是成就感,希望大家在学习的过程中都能找到成就感。

    大家有问题可以留言,积极讨论

  • 相关阅读:
    字符串哈希
    codeforces#766 D. Mahmoud and a Dictionary (并查集)
    莫比乌斯反演模板
    马拉车模板
    codeforces#580 D. Kefa and Dishes(状压dp)
    1076E
    448C
    543A
    295B
    poj3974 Palindrome
  • 原文地址:https://www.cnblogs.com/nanaheidebk/p/10603421.html
Copyright © 2011-2022 走看看