• 15
  • 15
分享
  • 数据库:除了增删改查,我还会设计和创建!——软件测试圈
  • 曼倩诙谐 2021-10-08 10:00:18 字数 1895 阅读 2296 收藏 15

  在日常测试工程中,不管是功能测试、接口测试、UI测试等,其实本质都是对应用程序的数据进行增删改查操作。开发人员设计好数据库模型后,各个业务功能都依赖于对该模型进行操作,从而展现出不同的数据给用户。

  在面试或者是写简历时,对数据库只能一句话概括“掌握数据库的增删改查”。今天来给大家带大家了解下web应用程序的数据库设计和相关操作,也就是学习下数据库是如何设计和生成的。

  在开始之前,首先要知道常用的web应用框架有django和flash框架,两者的区别可以简单形容为django像是精装房,大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富,适合企业级网站;而flash像是毛坯房,小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。

  今天我们就选Django框架来演示数据库设计和生成。

  Django自带ORM模型,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

  ORM模型基础

  在开始设计数据库之前,我们先来了解下数据类型,作为一个测试人员,在日常测试中我们都会考虑到以下测试点:

  1.字段支持输入的类:数字、字母等

  2.字段是否允许为空

  3.字段是否唯一

  ……

  其实以上规则限制需要引用到Django ORM数据库模型。

  了解数据类型

  在学习python或java等开发语言过程中,我们首先第一步学习的就是了解这个语言的数据类型,那么在学Django的ORM数据模型也是一样,我们第一步也是要先了解其常用的数据字段类型。

1-1.png

  了解数据字段常用属性

1-2.png

  具体其他参考相关资料文档说明。

  注册数据表设计

  Django的ORM数据模型定义在项目的models.py文件内。常见的用户注册信息一般包含一下几个字段,用户名、密码、邮箱、手机号等,所以对应的数据库设计:

  前提:已创建django项目和程序。

1-3.png

  数据表注册

  1.检查条件

  1)注册app

  在项目的配置文件settings.py内的INSTALLED_APPS内注册app应用程序。

  2)设置数据库连接信息

  创建app时会自动创建sqlite3,django默认是用该数据库启动;若需要更换成mysql,则对应的项目的配置文件settings.py内的DATABASES也需要设置成mysql配置信息。

  2.数据库模型激活

  激活命令:python manage.py makemigrations

  执行激活命令后会在项目的migrations目录下生成一个预处理文件。

1-4.png

1-5.png

  数据表迁移(同步到数据库)

  迁移命令:python manage.py migrate

1-6.png

  迁移成功后才可操作数据库,迁移成功后数据库内自动以“app_模型类名小写”命名生成一张新的数据库表,如下图:

1-7.png

  操作数据库

  Django自带的ORM(object relational mapping对象关系映射)模型,通过调用api直接操作对应的数据库即可。如果业务逻辑未完成,Django也提供超级管理员界面,可通过超级管理员直接操作数据库模型。

  1.创建超级管理员,执行命令:python manage.py createsusperuser,按照提示创建管理员

  2.将数据库注册到超级管理

  3.启动Django服务:python manage.py runserver (启动成功够默认服务地址127.0.0.1:8000)

  4.访问超级管理员后台:http://127.0.0.1:8000/admin/   进入超级管理员登录界面:

1-8.png

  输入超级管理员账号和密码即可登录管理后台。

  5.超级管理员关联用户自定义的数据库,在项目下的admin.py文件内注册用户自定义的数据库,注册后超级管理员admin就有权限访问该数据库。

1-9.png

  点击对应的Account即可进行数据库的增删改查操作。

1-10.png

  以上内容就是一个数据库表生成的全过程,当然了实际业务中使用的数据库表字段更多,还设计到表与表之间的关系等,并不是一个用户信息表这么简单的事情,本文的主要目的是给大家普及下数据库表的生成过程以及数据库字段类型的概念。通过一个简单的案例让大家对数据库有更进一步的了解~



作者:绿豆芽呀   

来源:http://www.51testing.com/html/71/n-4478871.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 我发现,在OO和UML几乎一统天下的今天,仍有很多系统分析员对OO和UML一知半解,甚至包括很多已经使用了很久UML的系统分析员。于是打算写一个系列文章,将多年来的工作经验做一个总结。对初学者起个启蒙作用,也希望抛砖引喻,与各路大虾共同探讨,共同提高。这个系列文章将以我对OO和系统分析的理解为主,从UML基础开始,阐述面向对象的需求分析方法,过程,并以RUP为例,阐述如何将OO过程与软件过程有机结合在一起,做一个真正OO应用。好了,今天是第一篇。想得很远,不知能否坚持下去,呵呵:lol:用例是什么?其原始英文是usecase,直译过来就成了用例。这也是一个比较贴切的叫法了,从字面的直接理解就是...
            13 14 1249
            分享
          •   Appium框架介绍  Appium是什么?  首先,Appium 是一款开源框架,生态丰富,社区强大,一直在被开发者维护;  并且是一个灵活的跨平台的测试自动化工具,可以在iOS、Android 或 Windows、Mac 设备上进行移动应用的自动化测试运行,并且能够使用相同的 API 编写多个平台的测试脚本;  Appium与Selenium类似,是一个跨语言的自动化框架,并且可以和任何测试框架相结合;可以使用不同的编程语言编写测试脚本,包括 Java、JavaScript、PHP、Ruby、Python 和 C#。  Appium通信-各个端介...
            0 0 489
            分享
          • 1、双击jmeter.bat文件,进入jmter界面,如下图;2、右击测试计划--添加--线程(用户)--线程组,添加一个线程组,如下图所示;3、右击线程组--添加--取样器--HTTP请求,添加一个HTTP请求,如下图所示4、根据给定的接口文档或者自己抓包获取的URL相关信息,填写以下信息:5、示例URL:https://baidu.gh.cn/baidu.service/LoginService/Login(此网址为错误网址,仅作举例使用)Request Method(请求方式): POSTjmeter内填写以下信息(如下图):协议:https服务器名称或IP:baidu.gh.cn路径:...
            0 0 5618
            分享
          • 摘要:我们思考,什么需要测试覆盖是“完整的”的方式,影响了我们如何测试和创建的测试用例。毕竟,一般情况下你只会为发生在你身上的情况设计测试——正常来讲,你也只能测试那些看得到的东西。是时候该脱下眼罩了。下面介绍如何能在你的产品中找到发生bug的地方,接着调整你的策略来精确地定位到它们。当我在一家保险公司工作时,我处理了大量的数据提取程序。在那段时间里,我从来没有见过一个需求文档来指明数据库关闭时应该做什么,即便大多数测试都是基于这些需求的。任何专家都可以使用需求文档并创建一个地图、要点或电子表格来构建一个“覆概率模型”。整个软件公司都存在可视化这些模型,当测试“覆盖”到这些功能时,把它们设计成...
            0 2 1952
            分享
          •   埃森哲对敏捷测试的定义(与维基百科的定义基本一致)大概如此:敏捷测试是遵从敏捷软件开发原则的一种测试实践。敏捷开发模式把测试集成到了整个开发流程中而不再把它当成一个独立的阶段。因此测试变成了整个软件开发过程中非常重要的环节。敏捷测试包含了具备专业技能测试人员在内的跨职能团队,这使得这种组合式的团队能更好的交付价值,满足项目的业务、质量和进度目标。  从定义中可以看出敏捷测试主要的核心内涵有三个:  1. 是遵从敏捷开发的原则(强调遵守)  2. 测试被包含在整体开发流程中(强调融合)  3. 跨职能团队(强调协作)  除此之外,敏捷测试用到的基本测试方法和技术与传统测试是一样的。  敏捷测...
            12 12 1546
            分享
      • 51testing软件测试圈微信