Testing Blog

Hermetic Servers

onsdag, oktober 03, 2012
Share on Twitter Share on Facebook
Google
Etiketter: Chaitali Narla , Diego Salas

10 kommentarer :

  1. Dave3. oktober 2012 kl. 15.17.00 GMT-7

    Very interesting post. I will be looking into implementing something similar in our system. I have one question. If the servers are receiving requests I assume they are running inside a service container. Starting up the likes of Tomcat WebSphere jboss etc US very slow. How do you manage to include these tests in a continuous build environment , they must be slow.?

    SvarSlet
    Svar
    1. Unknown6. oktober 2012 kl. 07.57.00 GMT-7

      Hi Dave,

      Yes, the tests are large tests and certainly some of our slower tests. We run them in a "continuous build" in the sense of running them automatically at a regular frequency such as every 15 mins or half hour. Running them at every changelist is definitely expensive. But running at every few changelists means a binary search between the last passed run and the failed run will help us track down the problem changelist fairly fast.

      Slet
      Svar
        Svar
    2. Svar
  2. Bharath Hemachandran4. oktober 2012 kl. 00.31.00 GMT-7

    Have you used this to isolate and find non-network related performance bottlenecks in sub-systems as well(I don't see it listed as a potential use case as you were writing about end - end testing)?

    I think this would a really useful thing to do - especially to find performance issues related to the various subsystems in the SUT.

    For example - badly written stored procedures, deadlocks, paging, issues within the middleware etc can be found quite easily could be detected quite early in the development cycle.

    I suppose the biggest problem would be to package the hermetic server itself for testing. Could you list out some issues you have faced in doing so?

    SvarSlet
    Svar
    1. Unknown6. oktober 2012 kl. 08.08.00 GMT-7

      Hi Bharath,

      You are right that hermetic servers can be used in performance tests! We use them for micro-benchmarking tests and have been able to catch performance regressions in servers very early with such tests.

      In addition to the points we mentioned in the article for packaging the hermetic server, performance tests do need additional hooks in the package. One of them is the ability to inject simulated latencies to the request/response times between servers. We have found that useful for modeling real servers better.

      Slet
      Svar
        Svar
    2. Bharath Hemachandran10. oktober 2012 kl. 21.19.00 GMT-7

      I was talking about a simpler system wherein the code that gets checked in automatically gets bench-marked and compared versus its previous runs as well. Or at a component/system level perhaps the log times for the various tasks get compared with one another.

      I don't believe any hooks into the code is required at all - although logging may require some debugging capability within the system.

      Just by comparing the times as the product is being built out we can see how the feature/component/system performs as the code base becomes larger.

      Slet
      Svar
        Svar
    3. Svar
  3. Łukasz Jasiński8. oktober 2012 kl. 23.55.00 GMT-7

    Nice post and good solution :)

    SvarSlet
    Svar
      Svar
  4. NKN's Shots30. august 2013 kl. 20.36.00 GMT-7

    Very insight article

    SvarSlet
    Svar
      Svar
  5. aman9. oktober 2013 kl. 23.33.00 GMT-7

    This is nice one. we can easily to check performance of the testing in within server scale which we have no idea about when we used Sql query and sub query task ..!

    SvarSlet
    Svar
      Svar
  6. Anonym8. august 2017 kl. 02.04.00 GMT-7

    Hi. Thank you for your post. So, using Hermetic Servers in tests can let me know whether server API had been sent or not, right? Because I want to test whether server API had sent or not. Thank you

    SvarSlet
    Svar
      Svar
  7. Zahid18. december 2020 kl. 02.53.00 GMT-8

    8 years later, is this still an accepted practice at Google?

    SvarSlet
    Svar
      Svar
Tilføj kommentar
Indlæs flere...

The comments you read and contribute here belong only to the person who posted them. We reserve the right to remove off-topic comments.

  

Labels


  • TotT 108
  • GTAC 61
  • James Whittaker 42
  • Misko Hevery 32
  • Code Health 31
  • Anthony Vallone 27
  • Patrick Copeland 23
  • Jobs 18
  • Andrew Trenk 13
  • C++ 11
  • Patrik Höglund 8
  • JavaScript 7
  • Allen Hutchison 6
  • George Pirocanac 6
  • Zhanyong Wan 6
  • Harry Robinson 5
  • Java 5
  • Julian Harty 5
  • Adam Bender 4
  • Alberto Savoia 4
  • Ben Yu 4
  • Erik Kuefler 4
  • Philip Zembrod 4
  • Shyam Seshadri 4
  • Chrome 3
  • Dillon Bly 3
  • John Thomas 3
  • Lesley Katzen 3
  • Marc Kaplan 3
  • Markus Clermont 3
  • Max Kanat-Alexander 3
  • Sonal Shah 3
  • APIs 2
  • Abhishek Arya 2
  • Alan Myrvold 2
  • Alek Icev 2
  • Android 2
  • April Fools 2
  • Chaitali Narla 2
  • Chris Lewis 2
  • Chrome OS 2
  • Diego Salas 2
  • Dori Reuveni 2
  • Jason Arbon 2
  • Jochen Wuttke 2
  • Kostya Serebryany 2
  • Marc Eaddy 2
  • Marko Ivanković 2
  • Mobile 2
  • Oliver Chang 2
  • Simon Stewart 2
  • Stefan Kennedy 2
  • Test Flakiness 2
  • Titus Winters 2
  • Tony Voellm 2
  • WebRTC 2
  • Yiming Sun 2
  • Yvette Nameth 2
  • Zuri Kemp 2
  • Aaron Jacobs 1
  • Adam Porter 1
  • Adam Raider 1
  • Adel Saoud 1
  • Alan Faulkner 1
  • Alex Eagle 1
  • Amy Fu 1
  • Anantha Keesara 1
  • Antoine Picard 1
  • App Engine 1
  • Arham Jain 1
  • Ari Shamash 1
  • Arif Sukoco 1
  • Bartosz Papis 1
  • Benjamin Pick 1
  • Bob Nystrom 1
  • Bruce Leban 1
  • Carlos Arguelles 1
  • Carlos Israel Ortiz García 1
  • Cathal Weakliam 1
  • Christopher Semturs 1
  • Clay Murphy 1
  • Dagang Wei 1
  • Dan Maksimovich 1
  • Dan Shi 1
  • Dan Willemsen 1
  • Dave Chen 1
  • Dave Gladfelter 1
  • David Bendory 1
  • David Mandelberg 1
  • Derek Snyder 1
  • Diego Cavalcanti 1
  • Dmitry Vyukov 1
  • Eduardo Bravo Ortiz 1
  • Ekaterina Kamenskaya 1
  • Elliott Karpilovsky 1
  • Elliotte Rusty Harold 1
  • Espresso 1
  • Felipe Sodré 1
  • Francois Aube 1
  • Gene Volovich 1
  • Google+ 1
  • Goran Petrovic 1
  • Goranka Bjedov 1
  • Hank Duan 1
  • Havard Rast Blok 1
  • Hongfei Ding 1
  • Jason Elbaum 1
  • Jason Huggins 1
  • Jay Han 1
  • Jeff Hoy 1
  • Jeff Listfield 1
  • Jessica Tomechak 1
  • Jim Reardon 1
  • Joe Allan Muharsky 1
  • Joel Hynoski 1
  • John Micco 1
  • John Penix 1
  • Jonathan Rockway 1
  • Jonathan Velasquez 1
  • Josh Armour 1
  • Julie Ralph 1
  • Kai Kent 1
  • Kanu Tewary 1
  • Karin Lundberg 1
  • Kaue Silveira 1
  • Kevin Bourrillion 1
  • Kevin Graney 1
  • Kirkland 1
  • Kurt Alfred Kluever 1
  • Kyle Freeman 1
  • Manjusha Parvathaneni 1
  • Marek Kiszkis 1
  • Marius Latinis 1
  • Mark Ivey 1
  • Mark Manley 1
  • Mark Striebeck 1
  • Matt Lowrie 1
  • Meredith Whittaker 1
  • Michael Bachman 1
  • Michael Klepikov 1
  • Mike Aizatsky 1
  • Mike Wacker 1
  • Mona El Mahdy 1
  • Noel Yap 1
  • Palak Bansal 1
  • Patricia Legaspi 1
  • Per Jacobsson 1
  • Peter Arrenbrecht 1
  • Peter Spragins 1
  • Phil Norman 1
  • Phil Rollet 1
  • Pooja Gupta 1
  • Project Showcase 1
  • Radoslav Vasilev 1
  • Rajat Dewan 1
  • Rajat Jain 1
  • Rich Martin 1
  • Richard Bustamante 1
  • Roshan Sembacuttiaratchy 1
  • Ruslan Khamitov 1
  • Sam Lee 1
  • Sean Jordan 1
  • Sebastian Dörner 1
  • Sharon Zhou 1
  • Shiva Garg 1
  • Siddartha Janga 1
  • Simran Basi 1
  • Stan Chan 1
  • Stephen Ng 1
  • Tejas Shah 1
  • Test Analytics 1
  • Test Engineer 1
  • Tim Lyakhovetskiy 1
  • Tom O'Neill 1
  • Vojta Jína 1
  • Zhe Lu 1
  • automation 1
  • dead code 1
  • iOS 1
  • mutation testing 1


Archive


  • ►  2026 (2)
    • ►  mar. (2)
  • ►  2025 (3)
    • ►  okt. (1)
    • ►  sep. (1)
    • ►  jan. (1)
  • ►  2024 (13)
    • ►  dec. (1)
    • ►  okt. (1)
    • ►  sep. (1)
    • ►  aug. (1)
    • ►  jul. (1)
    • ►  maj (3)
    • ►  apr. (3)
    • ►  mar. (1)
    • ►  feb. (1)
  • ►  2023 (14)
    • ►  dec. (2)
    • ►  nov. (2)
    • ►  okt. (5)
    • ►  sep. (3)
    • ►  aug. (1)
    • ►  apr. (1)
  • ►  2022 (2)
    • ►  feb. (2)
  • ►  2021 (3)
    • ►  jun. (1)
    • ►  apr. (1)
    • ►  mar. (1)
  • ►  2020 (8)
    • ►  dec. (2)
    • ►  nov. (1)
    • ►  okt. (1)
    • ►  aug. (2)
    • ►  jul. (1)
    • ►  maj (1)
  • ►  2019 (4)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  jul. (1)
    • ►  jan. (1)
  • ►  2018 (7)
    • ►  nov. (1)
    • ►  sep. (1)
    • ►  jul. (1)
    • ►  jun. (2)
    • ►  maj (1)
    • ►  feb. (1)
  • ►  2017 (17)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  okt. (1)
    • ►  sep. (1)
    • ►  aug. (1)
    • ►  jul. (2)
    • ►  jun. (2)
    • ►  maj (3)
    • ►  apr. (2)
    • ►  feb. (1)
    • ►  jan. (2)
  • ►  2016 (15)
    • ►  dec. (1)
    • ►  nov. (2)
    • ►  okt. (1)
    • ►  sep. (2)
    • ►  aug. (1)
    • ►  jun. (2)
    • ►  maj (3)
    • ►  apr. (1)
    • ►  mar. (1)
    • ►  feb. (1)
  • ►  2015 (14)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  okt. (2)
    • ►  aug. (1)
    • ►  jun. (1)
    • ►  maj (2)
    • ►  apr. (2)
    • ►  mar. (1)
    • ►  feb. (1)
    • ►  jan. (2)
  • ►  2014 (24)
    • ►  dec. (2)
    • ►  nov. (1)
    • ►  okt. (2)
    • ►  sep. (2)
    • ►  aug. (2)
    • ►  jul. (3)
    • ►  jun. (3)
    • ►  maj (2)
    • ►  apr. (2)
    • ►  mar. (2)
    • ►  feb. (1)
    • ►  jan. (2)
  • ►  2013 (16)
    • ►  dec. (1)
    • ►  nov. (1)
    • ►  okt. (1)
    • ►  aug. (2)
    • ►  jul. (1)
    • ►  jun. (2)
    • ►  maj (2)
    • ►  apr. (2)
    • ►  mar. (2)
    • ►  jan. (2)
  • ▼  2012 (11)
    • ►  dec. (1)
    • ►  nov. (2)
    • ▼  okt. (3)
      • GTAC Coming to New York in the Spring
      • Why Are There So Many C++ Testing Frameworks?
      • Hermetic Servers
    • ►  sep. (1)
    • ►  aug. (4)
  • ►  2011 (39)
    • ►  nov. (2)
    • ►  okt. (5)
    • ►  sep. (2)
    • ►  aug. (4)
    • ►  jul. (2)
    • ►  jun. (5)
    • ►  maj (4)
    • ►  apr. (3)
    • ►  mar. (4)
    • ►  feb. (5)
    • ►  jan. (3)
  • ►  2010 (37)
    • ►  dec. (3)
    • ►  nov. (3)
    • ►  okt. (4)
    • ►  sep. (8)
    • ►  aug. (3)
    • ►  jul. (3)
    • ►  jun. (2)
    • ►  maj (2)
    • ►  apr. (3)
    • ►  mar. (3)
    • ►  feb. (2)
    • ►  jan. (1)
  • ►  2009 (54)
    • ►  dec. (3)
    • ►  nov. (2)
    • ►  okt. (3)
    • ►  sep. (5)
    • ►  aug. (4)
    • ►  jul. (15)
    • ►  jun. (8)
    • ►  maj (3)
    • ►  apr. (2)
    • ►  feb. (5)
    • ►  jan. (4)
  • ►  2008 (75)
    • ►  dec. (6)
    • ►  nov. (8)
    • ►  okt. (9)
    • ►  sep. (8)
    • ►  aug. (9)
    • ►  jul. (9)
    • ►  jun. (6)
    • ►  maj (6)
    • ►  apr. (4)
    • ►  mar. (4)
    • ►  feb. (4)
    • ►  jan. (2)
  • ►  2007 (41)
    • ►  okt. (6)
    • ►  sep. (5)
    • ►  aug. (3)
    • ►  jul. (2)
    • ►  jun. (2)
    • ►  maj (2)
    • ►  apr. (7)
    • ►  mar. (5)
    • ►  feb. (5)
    • ►  jan. (4)

Feed

  • Google
  • Privacy
  • Terms