给httprunnermanager接口自动化测试平台加点功能(一)

news2024/9/21 2:40:42

文章目录

      • 一、背景
      • 1.1、部署过程略
      • 二、使用过程
      • 2.1、新增接口列
      • 2.2、实现搜索效果
      • 三、总结

一、背景

https://github.com/httprunner/HttpRunnerManager.git从github上找的接口测试平台,引入公司作为测试协同测试的平台,底层框架基于httprunner(requests+yaml+unittest),平台则基于Django+jinja2+sqlite实现,当然它里面还用了mq+定时任务+locust等等功能,按需索取!

1.1、部署过程略

这里需要提醒一下,最好使用python3.6.8版本,pip install -r requirements.txt时,注意依赖会报错;多百度一下也就可能解决了,最多体现的地方就是版本兼容问题。

二、使用过程

2.1、新增接口列

题主在使用中遇到一个问题,就是编写接口之后,path部分被包裹起来存入数据库了,如果想知道路径得点击名称进编辑页查看,还有就是想通过名称搜索获取接口信息,多少有点勉强,所以最好就是通过path来搜索,展示效果如下:一眼就能知道这些接口是一样的只是入参的某个值不一样

在这里插入图片描述

既然有想法就立马来实现,找到templates/test_list.html新增表头

在这里插入图片描述

再去表单中取值,但是这里需要注意一下,因为整个web框架是以httprunner为实现框架,它存起来的用例数据是一个个json对象,是满足它可以直接使用的。所以path部分不是单独存入数据库的,不然就可以像其他值一样取{{ foo.url }},那么它能改成将url单独存一个字段嘛?思考一下:能,需要做哪些工作呢?

在这里插入图片描述

这里有一个关于Django很有意义的知识点,就是在jinja2模板中使用python自定义的模板来渲染页面,怎么说呢?就像上面的url部分是在整个用例中,因为层级原因,并不能直接取值,所以需要处理,咱们先来看看用例数据是如何而来的。

在这里插入图片描述

看着存入数据库request字段的值,它需要取多少层才能得到url,很明显按其他的写法可能无法得到url,所以才需要自定义过滤器

在这里插入图片描述

在工程下找到templatetags目录,custom_tags.py已经有些写好的demo,也在实际场景运用起来了;

在这里插入图片描述

那么再接着写自己定义的过滤器

在这里插入图片描述

直接通过过滤器,提取出目标数据,jinja2模板渲染,原来是通过名称来搜索的,下面就要实现url来实现了

在这里插入图片描述

test_list.html默认文案修改,这个就更简单了

在这里插入图片描述

效果如下:

在这里插入图片描述

2.2、实现搜索效果

找到查询的db层操作,看看这个过滤是如何实现了,如果名字不是为空就查询,且看它是contains包含操作,所以支持模糊匹配

obj = obj.filter(name__contains=name) if name is not '' else obj.filter(author__contains=user)

那么对于结果就需要重新写了,|表示or,且还有一个Q,就这样实现了名称和request用例数据的模糊查询

在这里插入图片描述

from django.db.models import Q

obj = obj.filter(
    Q(request__contains=name) | Q(name__contains=name)) if name is not '' else obj.filter(
    author__contains=user)

三、总结

虽然这个平台已经停止维护了,在5年的开发背景下,还有很多不够完善的地方,比如在用例这里有编写者author数据,那么在suite页是不是也要显示一下?再有列表数据的维护,删除是一个一个的,那么批量删除它不香嘛?还有用例这里只负责执行,那么我想让它不执行又该如何做呢?等等这些在使用中相继被发现的,都需要被优化,既然是作为测试引入,而且也没有其他开发加入的情况下,测试就要担负起开发的责任,而且在实现方面,平台已经给足了样式,至于实现方式就仁者见仁智者见智了,日拱一卒无有尽,功不唐捐终入海

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【单目标优化算法】杂草优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

这些使用工具大推荐,现在知道不晚

1.Snip Snip是一款截图软件,它突出的优点就是可以制作滚动截图。 例如:对整个网页进行截图,使用Snip即可轻松获取,无需处理水印。 2.Sleep Cycle 快节奏、高压力的生活导致我们越来越晚睡觉,睡眠质量越来越差。 想提…

Python学习9:对指定r计算圆的面积(python123)

平台:python123 题目描述: 编写函数getCircleArea(r),对给定的参数r计算圆的面积,并返回首先读入n(n>0),然后依次读入n个半径r1,r2,...,rn,以这些半径为参数依次调用getCircleArea函数,得到对应圆的面…

3.动态规划(0x3f:从周赛中学算法 2022下)

来自0x3f 【从周赛中学算法 - 2022 年周赛题目总结(下篇)】:https://leetcode.cn/circle/discuss/WR1MJP/ 【【灵茶山艾府】2022 年周赛题目总结(上篇)】https://leetcode.cn/circle/discuss/G0n5iY/ 学习动态规划是否…

( 栈和队列) 503. 下一个更大元素 II ——【Leetcode每日一题】

❓503. 下一个更大元素 II 难度:中等 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字…

为何越来越多人不喜欢“试用期六个月”的公司?网友:感觉不靠谱

众所周知,任何一份工作都有试用期,一般是三月左右。但如果你遇到试用期达到半年的公司,你会不会进入? 近日,就有人遇到了此类公司,并对是否要进入该公司犹豫不决。他在论坛上发帖求助:大家是怎…

京城、京味、京韵:从一台服务器看数字北京

北京,既是首善之都,也是数字化创新之城。 早在1999年,北京就基于整座城市的信息化建设方案,率先提出了“数字北京”。后来,数字北京的魅力在奥运会期间大放异彩,受到了全球高度认可。如今,数字经…

【Python】【进阶篇】10、Django中间件

目录 Django中间件1. Django默认自带中间件1)中间的执行与响应顺序2)在调用视图之前3)在调用视图之后 2. 中间件的作用总结 Django中间件 中间件是一个插件系统,嵌入在 Django 的 Request 和 Response 之间执行,可以对…

使用@Bean注解指定初始化和销毁的方法

bean的生命周期 通常意义上讲的bean的生命周期,指的是bean从创建到初始化,经过一系列的流程,最终销毁的过程。只不过,在Spring中,bean的生命周期是由Spring容器来管理的。在Spring中,我们可以自己来指定be…

apple pencil有买的必要吗?便宜的平替电容笔推荐

在当今世界,电容笔就已经成为一种热门的电子产品,其的各项性能也在不断改进。因此,如何挑选一款性价比高的电容笔成为大家关心的焦点,越来越多的人开始追求更好更廉价的电容笔。那么,哪个品牌的电容笔价格更实惠、性价…

工业设备巨头MSC Industrial Supply的供应链建设——EDI

MSC Industrial Supply提供广泛的工业用品和解决方案,包括切削工具、测量工具、金属加工和设备维护工具、劳动保护用品、工业设备等。MSC Industrial Supply的供应商来自全球各地,包括多个行业的领先品牌,例如Kennametal、Sandvik Coromant、…

【图像分割】【深度学习】SAM官方Pytorch代码-Prompt encoder模块ProEnco网络解析

【图像分割】【深度学习】SAM官方Pytorch代码-Prompt encoder模块PromptEncoder网络解析 Segment Anything:建立了迄今为止最大的分割数据集,在1100万张图像上有超过1亿个掩码,模型的设计和训练是灵活的,其重要的特点是Zero-shot(…

北邮22信通:二叉树层序遍历的非递归算法:A Story Between Two Templates

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 获取更多文章 请访问专栏~ 北邮22信通_青山如墨雨如画的博客-CSDN博客 目录 一.总纲 二.用队列存储 2.1用模板类实现队列 2.1.1核心思路: …

丁鹿学堂:使用vite手动构建vue项目的注意事项和步骤总结

使用yarn 默认安装了nodeJS环境,使用yarn,比npm更好用。 npm install --global yarn使用yarn按钻过vite yarn add -D vite使用yarn初始化项目 yarn init -y安装vite yarn add vite -D安装vue yarn add vue项目目录: 创建index.html sr…

分享一个有意思的文字飞入动画(模仿水滴融合)

先上效果图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}:root {--text-…

前后端分离demo 旅馆管理系统(Angular+Springboot)

模型设计 旅馆管理系统&#xff0c;主要涉及到登记入住&#xff0c;退房以及客房和客人信息管理&#xff1b;经过分析抽像出涉及到的实体以及各实体之间的关系&#xff1a;   可以看出整个业务以客房为中心&#xff0c;入住&#xff0c;退房&#xff0c;定价&#xff0c;收费…

Build an SAP Fiori App(一)后面更新中

1.登录 SAP BTP Trial 地址&#xff1a; https://account.hanatrial.ondemand.com 流程可以参考 点击 serviced marketplace 搜索studio 点击创建 点击创建&#xff0c;点击view subscription 点击go to application 创建完成后 添加新链接 Field Value Name ES5 - if you’…

Shell基础入门实战

写在前面 好久没在项目内做自动化了&#xff0c;主要是现阶段在项目内做自动化收益不大&#xff0c;最近开发做batch run的正好缺人&#xff0c;我看了一下代码&#xff0c;就是通过代码读取jar包和远程服务器连接&#xff0c;然后通过shell脚本&#xff0c;向数据库插入数据&a…

如何成为一名优秀的接口自动化测试工程师?了解这些技能是关键

摘要&#xff1a; 随着互联网行业的不断发展&#xff0c;越来越多的应用程序通过API接口提供服务。因此&#xff0c;接口自动化测试成为了保障软件质量的重要环节。本文将介绍接口自动化测试所需掌握的技能&#xff0c;以及相关的历史进程。 B站首推&#xff01;2023最详细自…

什么是 Java 垃圾回收器~

什么是 Java 垃圾回收器 Java 垃圾回收器是 Java 虚拟机 (JVM) 的三个重要模块 (另外两个是解释器和多线程机制) 之一&#xff0c;为应用程序提供内存的自动分配 (Memory Allocation)、自动回收 (Garbage Collect) 功能&#xff0c;这两个操作都发生在 Java 堆上 (一段内存快)…