首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测试开发进阶(三十九)

测试开发进阶(三十九)

作者头像
zx钟
发布2019-12-05 23:45:13
2760
发布2019-12-05 23:45:13
举报
文章被收录于专栏:测试游记测试游记

首页

使用一个简单的get函数返回需要的内容

statistics = {    'projects_count': projects_count,    'interfaces_count': interfaces_count,    'testcases_count': testcases_count,    'testsuits_count': testsuits_count,    'configures_count': configures_count,    'envs_count': envs_count,    'debug_talks_count': debug_talks_count,    'reports_count': reports_count,    'success_rate': success_rate,    'fail_rate': fail_rate,}

他们都是从数据库中计算并统计出来的

需要有权限才能访问

permission_classes = [permissions.IsAuthenticated]

代码:

from rest_framework.views import APIViewfrom rest_framework.response import Responsefrom rest_framework import permissionsfrom django.db.models import Sumfrom projects.models import Projectsfrom interfaces.models import Interfacesfrom testcases.models import Testcasesfrom testsuits.models import Testsuitsfrom configures.models import Configuresfrom envs.models import Envsfrom debugtalks.models import DebugTalksfrom reports.models import Reportsclass SummaryAPIView(APIView):    """    返回统计信息    """    permission_classes = [permissions.IsAuthenticated]    def get(self, request):        """        获取统计信息        """        user = request.user        user_info = {            'username': user.username,            'role': '管理员' if user.is_superuser else '普通用户',            'date_joined': user.date_joined.strftime('%Y-%m-%d %H:%M:%S') if user.date_joined else '',            'last_login': user.last_login.strftime('%Y-%m-%d %H:%M:%S') if user.last_login else '',        }        projects_count = Projects.objects.filter(is_delete=False).count()        interfaces_count = Interfaces.objects.filter(is_delete=False).count()        testcases_count = Testcases.objects.filter(is_delete=False).count()        testsuits_count = Testsuits.objects.filter(is_delete=False).count()        configures_count = Configures.objects.filter(is_delete=False).count()        envs_count = Envs.objects.filter(is_delete=False).count()        debug_talks_count = DebugTalks.objects.filter(is_delete=False).count()        reports_count = Reports.objects.filter(is_delete=False).count()        run_testcases_success_count = Reports.objects.filter(is_delete=False).aggregate(Sum('success'))[                                          'success__sum'] or 0        run_testcases_total_count = Reports.objects.filter(is_delete=False).aggregate(Sum('count'))['count__sum'] or 0        if run_testcases_total_count:            success_rate = int((run_testcases_success_count / run_testcases_total_count) * 100)            fail_rate = 100 - success_rate        else:            success_rate = 0            fail_rate = 0        statistics = {            'projects_count': projects_count,            'interfaces_count': interfaces_count,            'testcases_count': testcases_count,            'testsuits_count': testsuits_count,            'configures_count': configures_count,            'envs_count': envs_count,            'debug_talks_count': debug_talks_count,            'reports_count': reports_count,            'success_rate': success_rate,            'fail_rate': fail_rate,        }        return Response(data={            'user': user_info,            'statistics': statistics        })

如何使用

  1. 项目管理-项目新增
  2. 维护内置函数debugtalk.py
  3. 环境管理-环境新增
  4. 接口管理-接口新增
  5. 配置管理-配置新增
  6. 用例管理-用例新增

部署

流程

  1. 安装操作系统
  2. 安装python
  3. mysql
  4. 搭建Django环境--各种模块的安装
  5. nginx
  6. gunicorn
  7. docker
  8. docker-compose
  9. docker-swarm

由于还没有学习 docker暂时不继续,先行学习 docker

Shell

  1. 命令解释器
  2. shell就是在操作系统和应用程序之间的一个命令翻译工具

shell的分类

  • Winodws中

cmd.exe命令提示字符

  • linux中

  • sh
  • bash
  • zsh

常用命令

  • head:默认获取文件前十行
  • tail:默认获取文件后十行

获取一个区间,第10~13行

$ head -n13 xxx | tail -n4
  • cut:取出文本指定列

-d:指定分割符 -f:指定列

Name Age Scorea 25 90b 26 91c 27 92d 28 93
$ cut -d" " -f1 learn_cut.txt
  • uniq:去除重复项

-d:仅打印有重复的元素 -c:打印元素重复的个数

  • sort:对文本的内容进行排序

默认以字符串的ASCII码数值从小到大排序 -n:以数值大小排序 -r:倒序 -t:指定分割符,默认为空格 -knum:指定以某个字段来排序

# 以:分割的第三列的数值大小排列$ sort -t":" -k3 -n /etc/passwd
  • wc「word count」计算文本数量

-l:打印行数 -w:打印单词数 -c:打印字节数 -L:打印最长行的字节数

变量

  • 本地变量
  • 全局变量
  • 内置变量
定义变量

等号前后不能有空格

$ username="89"$ username=a b # 错误$ username="a b" #正确
  • 单引号:所见即所得

不能插值

$ p=python$ u='I love $p'$ echo $u$ i="I love $p"$ echo $i

将命令的结果返回给变量

$ o=$(ls)$ p=`ls`
(局部)全局变量
$ env
$ echo $USER
定义全局变量
  1. export 变量
  2. export 变量=值

~/.bashrc中创建才是真正的全局变量

内置变量
  • $0:获取当前执行的shell脚本文件名,包括脚本路径
  • $n:当前shell脚本的第n个参数(n>9需要使用 ${10})
  • $#:获取当前shell命令行中参数的总个数
  • $?:获取执行的上一个命令的返回值(0为成功,非0为失败)
#!/bin/bashecho "参数的总个数:$#"echo "脚本名为:$0"echo "第二个参数:$2"echo "第十个参数:${10}"echo "获取所有参数:$*"
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首页
  • 如何使用
  • 部署
    • 流程
    • Shell
      • shell的分类
        • 常用命令
          • 变量
            • 定义变量
            • (局部)全局变量
            • 内置变量
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档