<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python數(shù)據(jù)庫測(cè)試實(shí)戰(zhàn)指南

          共 1564字,需瀏覽 4分鐘

           ·

          2022-05-26 21:50

          下方查看歷史精選文章

          重磅發(fā)布 - 自動(dòng)化框架基礎(chǔ)指南pdfv1.1
          大數(shù)據(jù)測(cè)試過程、策略及挑戰(zhàn)

          測(cè)試框架原理,構(gòu)建成功的基石

          在自動(dòng)化測(cè)試工作之前,你應(yīng)該知道的10條建議

          在自動(dòng)化測(cè)試中,重要的不是工具

          首先我們看一下什么是數(shù)據(jù)庫測(cè)試

          數(shù)據(jù)庫測(cè)試是檢查被測(cè)數(shù)據(jù)庫的模式、表、觸發(fā)器等。


          它可能涉及創(chuàng)建復(fù)雜的查詢來加載/壓力測(cè)試數(shù)據(jù)庫并檢查其響應(yīng)性。


          它檢查數(shù)據(jù)的完整性和一致性。


          我們?cè)诩?xì)化成具體的就是,我們需要驗(yàn)證表結(jié)構(gòu)、字段、長(zhǎng)度、主鍵、索引、unique等等屬性。


          如何做呢?


          可能你是直接通過命令行這樣驗(yàn)證


          也可能你是通過工具這樣驗(yàn)證


          不管哪種,似乎達(dá)到目的就行,那好,我們通過Python寫代碼驗(yàn)證試試。


          畢竟寫代碼顯得比較有意思點(diǎn)!??!


          先看下技術(shù)準(zhǔn)備,需要以下東西


          1. Python,筆者用Python3

          2. sqlalchemy庫(這是什么?你應(yīng)該要知道的喲)

          3. pymysql庫(本文以mysql為例,所以選擇該mysql驅(qū)動(dòng)庫)

          4 unittest


          IDE,筆者用PyCharm Community版本,最新的嗷嗷嗷~~


          以驗(yàn)證mysql默認(rèn)的mysql數(shù)據(jù)庫中的user表為例,直接上代碼實(shí)例了


          以下代碼示例僅驗(yàn)證以下幾個(gè)目標(biāo):

          - 表名

          - 字段名

          - 主鍵

          其他的驗(yàn)證自行研究學(xué)習(xí),或是加微信群里討論即可。


          # -*- coding: utf-8 -*-
          __author__ = "苦葉子"
          import unittest

          from sqlalchemy import create_engine
          from sqlalchemy.engine import reflection


          class TestMySQL(unittest.TestCase):
          def setUp(self):
          # 創(chuàng)建連接
          self.engine = create_engine("mysql+pymysql://root:[email protected]:3306/mysql")

          # 創(chuàng)建inspector對(duì)象
          self.insp = reflection.Inspector.from_engine(self.engine)

          def test_table_name(self):
          # 判斷user表是否在mysql這個(gè)實(shí)例庫中
          self.assertIn("user", self.insp.get_table_names())

          def test_column(self):
          # user表中是否有User字段
          User = None
          columns = self.insp.get_columns("user")
          for col in columns:
          if "User" == col["name"]:
          User = col["name"]

          self.assertIsNotNone(User)

          def test_keyprimary(self):
          # 驗(yàn)證user表中User字段是否為主鍵
          k = self.insp.get_pk_constraint("user")
          self.assertIn("User", k["constrained_columns"])


          if __name__ == "__main__":

          unittest.main()


          保存上述代碼在db_test.py中,運(yùn)行下看結(jié)果如下



          微信搜一搜 或 長(zhǎng)按加群
          開源優(yōu)測(cè)
          瀏覽 121
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一级二级在线观看 | AV天堂资源成人 | 国产偷拍网站 | 亚洲青青操 | 人妻斩蜜桃视频网站 |