接口测试平台代码实现107:登录态接口-4

简介: 接口测试平台代码实现107:登录态接口-4

本节我们要继续做登录态接口的js函数。

首先我们要修复上节的一个bug,就是展示这个登陆态函数的bug,由于作者的疏忽,导致加错了login_ :

微信图片_20220703194521.png

改好之后我们继续开发,先是保存函数吧:

   这依然是一个比较大的段落代码,分两步,1-获取,2-发送。

我依然是复制了普通接口的保存函数进行了全部替换成login_并增删了一些字段的方法,道理很容易懂,但是修改这么一大段代码仍然是非常麻烦,稍不留神就会出错,所以大家复制我的成品代码即可(若是之后发现bug请及时反馈):

微信图片_20220703194529.png

function login_save(){
        // 获取所有接口设置数据
        var login_method = document.getElementById('login_method').value ;
        var login_url = document.getElementById('login__url').value ;
        var login_host = document.getElementById('login__host').value ;
        var login_header = document.getElementById('login_header').value ;
        var login_response_set = document.getElementById('login_response_set').value;
        // 判断顶部的数据是否填充完
        if(ts_method == 'none'){alert('请选择请求方式!');return}
        if(ts_url == ''){alert('请输入url!');return}
        if(ts_host == ''){alert('请输入host!');return}
        //判断关键数据是否符合规则
        if(login_host.slice(0,7) != 'http://' && login_host.slice(0,8) != 'https://' && login_host.slice(0,4) !='全局域名' ){
            alert('host必须以http://或https://开头!');return
        }
        if(login_header != ''){
            try {
                JSON.parse(login_header)
            }catch (e) {
                alert('header请求头不符合json规范!');
                return
            }
        }
        var login_body_method = $('ul#login_myTab li[class="active"]')[0].innerText;
        if(login_body_method == '返回体'){
            alert('请切换到请求体tab再保存!')
            return
        }
        if(login_body_method == 'none'){
            var login_api_body = ''
        }
        if(login_body_method == 'form-data'){
            var login_api_body = []; //新建这个空列表用来存放后续的数据
            var tbody_ = $("table#login_mytable tbody")[0]; //获取该表格的内容部分
            var trlist = tbody_.children ; //获取下面所有tr,每个tr就是一个键值对实际上
            for(var i=0;i<trlist.length;i++) {
                var tdarr = trlist[i].children; // 获取tr下的俩个td
                var key = tdarr[0].innerText; // 获取key
                var value = tdarr[1].innerText; // 获取value
                login_api_body.push([key, value]);// 作为一个数组,存放到这个大数组里。
            }
            var login_api_body = JSON.stringify(login_api_body);
        }
        if(login_body_method == 'x-www-form-urlencoded'){
            var login_api_body = []; //新建这个空列表用来存放后续的数据
            var tbody_ = $("table#login_mytable2 tbody")[0]; //获取该表格的内容部分
            var trlist = tbody_.children ; //获取下面所有tr,每个tr就是一个键值对实际上
            for(var i=0;i<trlist.length;i++) {
                var tdarr = trlist[i].children; // 获取tr下的俩个td
                var key = tdarr[0].innerText; // 获取key
                var value = tdarr[1].innerText; // 获取value
                login_api_body.push([key, value]);// 作为一个数组,存放到这个大数组里。
            }
            var login_api_body = JSON.stringify(login_api_body);
        }
        if(login_body_method == 'Text'){
            var login_api_body = document.getElementById('login_raw_Text').value;
        }
        if(login_body_method == 'JavaScript'){
            var login_api_body = document.getElementById('login_raw_JavaScript').value;
        }
        if(login_body_method == 'Json'){
            var login_api_body = document.getElementById('login_raw_Json').value;
        }
        if(login_body_method == 'Html'){
            var login_api_body = document.getElementById('login_raw_Html').value;
        }
        if(login_body_method == 'Xml'){
            var login_api_body = document.getElementById('login_raw_Xml').value;
        }
        if(login_body_method == 'GraphQL'){
            body_plan_G_Q = document.getElementById('login_body_plan_G_Q').value;
            body_plan_G_G = document.getElementById('login_body_plan_G_G').value;
             var login_api_body = body_plan_G_Q+ '*WQRF*' + body_plan_G_G
        }
        $.get('/project_login_save/',{
            'project_id':'{{ project.id }}',
            'login_method':login_method,
            'login_url':login_url,
            'login_host':login_host,
            'login_header':login_header,
            'login_body_method':login_body_method,
            'login_api_body':login_api_body,
            'login_response_set':login_response_set,
        },function (ret) {
            document.location.reload();
        })
    }

代码中我设计了一个路由 用来保存这个登陆态接口设置,现在就去urls.py中进行映射书写:微信图片_20220703194536.png

然后去views.py中进行开发这个函数,当然内容很简单:

微信图片_20220703194558.png

# 保存登陆态接口
def project_login_save(request):
    # 提取所有数据
    project_id = request.GET['project_id']
    login_method = request.GET['login_method']
    login_url = request.GET['login_url']
    login_host = request.GET['login_host']
    login_header = request.GET['login_header']
    login_body_method = request.GET['login_body_method']
    login_api_body = request.GET['login_api_body']
    login_response_set = request.GET['login_response_set']
    # 保存数据
    DB_login.objects.filter(project_id=project_id).update(
        api_method=login_method,
        api_url = login_url,
        api_header = login_header,
        api_host = login_host,
        body_method = login_body_method,
        api_body = login_api_body,
        set = login_response_set
    )
    # 返回
    return HttpResponse('success')

搞定之后我们测试一下:

嗯保存,重新打开 都正常。所以这里功能就ok了。


相关文章
|
8天前
|
Web App开发 JavaScript 前端开发
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常
|
22天前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
49 6
基于Python访问Hive的pytest测试代码实现
|
6天前
|
Java C++
代码文件间重复性测试
本文介绍了如何使用代码相似性检测工具simian来找出代码文件中的重复行,并通过示例指令展示了如何将检测结果输出到指定的文本文件中。
|
18天前
|
敏捷开发 安全 测试技术
软件测试的艺术:从代码到用户体验的全方位解析
本文将深入探讨软件测试的重要性和实施策略,通过分析不同类型的测试方法和工具,展示如何有效地提升软件质量和用户满意度。我们将从单元测试、集成测试到性能测试等多个角度出发,详细解释每种测试方法的实施步骤和最佳实践。此外,文章还将讨论如何通过持续集成和自动化测试来优化测试流程,以及如何建立有效的测试团队来应对快速变化的市场需求。通过实际案例的分析,本文旨在为读者提供一套系统而实用的软件测试策略,帮助读者在软件开发过程中做出更明智的决策。
|
22天前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
49 6
|
23天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
|
9天前
|
机器学习/深度学习 敏捷开发 测试技术
软件测试的艺术:从代码到用户心灵的旅程
在阅读本文之前,让我们先共同思考一个问题:“为什么即使是最小的错误,也可能对用户体验和企业声誉造成巨大的影响?” 正如我们将要探讨的,软件测试不仅是技术活动的一种,更是确保产品质量、优化用户体验和维持品牌声誉的关键步骤。本文将引导您了解软件测试的基本概念,探索其背后的艺术性,以及如何高效地实施测试策略来达到最佳的质量保证结果。
21 0
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
下一篇
无影云桌面