MongoDB. Фокус на тестирование

1,239 views

Published on

Моя презентация на тему "MongoDB. Фокус на тестирование" подготовленная для Paralect QA BarCamp.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,239
On SlideShare
0
From Embeds
0
Number of Embeds
408
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

MongoDB. Фокус на тестирование

  1. 1. Фокус на тестированиеParalect QA BarCampUladzimir KryvenkaМай 2013
  2. 2. Обо мнеВладимир КривенкоИнструменты: Selenium, Coded UI TestОдин из основателей:Пишу блог :В тестировании 6+ летАвтор портала:Автоматизацией занимаюсь 3+ годаЭто я:Работаю:Head of QA в ParalectОпыт:
  3. 3. План• Введение в MongoDB• Особенности при тестировании• Рассмотрим в деле• Инструменты
  4. 4. ОпределениеДокументо-ориентированная база данных соткрытым исходным кодом, не требующаяописания схемы таблиц. Написана на языкеC++. Название происходит «humongous —огромный. Управляет наборами JSON-подобных документов, хранимых в двоичномвиде в формате BSON.
  5. 5. Основные возможности• Документо-ориентированное хранилище, нет схемданных• Гибкий язык (JSON) для формирования запросов• Полная поддержка индексов• Профилирование запросов• Эффективное хранение данных больших объемов• Репликация и поддержка отказоустойчивости• Профилирование, административный интерфейс,серверные функции, Map/Reduce
  6. 6. Термины MongoDB vs РСУБД• База данных – База данных• Таблица – Коллекция• Индекс – Индекс• Строка – Документ• Join – Embedding and Linking• Primary key -_id field• Group by – Aggregation
  7. 7. Характерные особенности• Денормализация данных• Избыточность данных• Распределение данных• Не используется SQL• Контроль данных из приложения, а не избазы
  8. 8. Типы данных• String• Integer• Double• Byte array• Boolean• Null• BSON Object
  9. 9. Сервер & Консоль• mongod.exe – сервер базы данных(основное приложение)> mongod --dbpath=”D:db1” --port=27017• mongo.exe – консоль управления базойданных> mongo --port=27017 admin
  10. 10. Авторизация в MongoDB> db.addUser(‘user’, ‘pass’){“n” : 0, “connectionId” : 16, “err” “ null, “ok” : 1}{ "user" : "user","readOnly" : false,"pwd" : "e0c4a7b97d4db31f5014e9694e567d6b","_id" : ObjectId("51a32a72c9aa9a049d203c37")}> mongo --port=27017 --username=user --password= pass test
  11. 11. Пример коллекции{"_id" : "b8b589-8c96-4f1e-ab51-0aa7946b4c","FirstName" : "test","LastName" : "test","MiddleName" : null,"UserName" : "ttest151","Email" : "aasdf@asdasd.aaa","Notes" : null,"IsArchived" : false,}
  12. 12. Примеры. Вставка данныхSQL:INSERT INTO db1.students SET fname = ‘Johnny’;MongoDB:> db.students.insert({fname:” Johnny”})
  13. 13. Примеры. ЗапросыSQL:SELECT * FROM studentsMongoDB:> db.students.find()SQL:SELECT * FROM students WHERE SchoolId =’5179b17c’MongoDB:> db.students.find({"SchoolId":"51710cb990bd7515ec79b17c"})
  14. 14. Примеры. ЗапросыSQL:SELECT id, FullName FROM students WHERE SchoolId = 517115ec79b17c’MongoDB:> db.students.find({"SchoolId":"517115ec79b17c"},{_id:1, FullName:2 })
  15. 15. Операторы условий• $gt — больше, чем• $lt — меньше, чем• $gte — больше, чем или равно• $lte — меньше, чем или равно> db.students.find({Age:{$lte:18}})> db.students.find({Age:{$gt:18}})
  16. 16. Операторы• $exists – используется для проверки наличия илиотсутствия поля.• $type – вернет все поля с заданным типом.• $where – передача JS• $in & $nin - выборка по конкретным значениям> db.students.find({referrals: {$exists: false}})> db.teachers.find({ student_in_class: { $in : [20, 30, 40]}});
  17. 17. Логические операторы• $or• $and• $not• $nor> db.students.find({$and:[{"SchoolId":"51710c17c"},{"FName": "Dave Gan" }]})> db.сlasses.find( { total: { $not: { $gt: 5 } } } )
  18. 18. Sort, limit, skip> db.students.find().sort({Age: 1})> db.students.find().sort({FullName: -1, Age: 1})> db.students.find().limit(3);> db.students.find({"Age":{$gt:9}} ).limit(5).skip(5).sort({"FName":1} )
  19. 19. Пример. ОбновлениеSQL:UPDATE students SET fname = “Johnny” WHERE lname = “Jacobs”MongoDB:> db.students.update({fname:” Johnny”}, {$set:{lname:” Jacobs”}})
  20. 20. Удаление данныхSQL:DELETE FROM students WHERE ID=1DELETE FROM students WHERE fname=”Johnny”MongoDB:> db.students.remove ({_id:ObjectID(“1”)})> db.students.remove({fname:”Johnny”})
  21. 21. Инструменты управления• Robomongo• MongoVUE• Opricot• Database Master• MongoVision• …
  22. 22. Robomongo
  23. 23. Robomongo• Shell-centric• Использует официальный MongoDB движок• Mac, Win, Linux• Tree mode, text mode• Бесплатный
  24. 24. MongoVUE
  25. 25. MongoVUE• Лог shell – команд• «ключ:значение» для поиска• Ограниченная бесплатная версияПримеры поиска:{"Title" : "test"}{"username": new RegExp("^a")} или то же самое{"Title":/se/}
  26. 26. А теперь ваши-ы
  27. 27. Пообщаемся? http://bugscatcher.net/u.kryvenka@gmail.comu.kryvenka

×