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

测试开发进阶(三十九)

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

首页

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

代码语言:javascript
复制
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,}

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

需要有权限才能访问

代码语言:javascript
复制
permission_classes = [permissions.IsAuthenticated]

代码:

代码语言:javascript
复制
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行

代码语言:javascript
复制
$ head -n13 xxx | tail -n4
  • cut:取出文本指定列

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

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

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

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

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

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

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

变量

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

等号前后不能有空格

代码语言:javascript
复制
$ username="89"$ username=a b # 错误$ username="a b" #正确
  • 单引号:所见即所得

不能插值

代码语言:javascript
复制
$ p=python$ u='I love $p'$ echo $u$ i="I love $p"$ echo $i

将命令的结果返回给变量

代码语言:javascript
复制
$ o=$(ls)$ p=`ls`
(局部)全局变量
代码语言:javascript
复制
$ env
代码语言:javascript
复制
$ echo $USER
定义全局变量
  1. export 变量
  2. export 变量=值

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首页
  • 如何使用
  • 部署
    • 流程
  • Shell
    • shell的分类
    • 常用命令
    • 变量
      • 定义变量
      • (局部)全局变量
      • 内置变量
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档