1002. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 10/3/2017 11:16:07 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

1002.1 Files compared

# Location File Last Modified
1 ehmp.zip\ehmp\ehmp\product\tests\performance-tests\archive TrialRun.rb Tue Jan 10 16:20:50 2017 UTC
2 ehmp.zip\ehmp\ehmp\product\tests\performance-tests\archive TrialRun.rb Mon Oct 2 20:10:36 2017 UTC

1002.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 308
Changed 1 2
Inserted 0 0
Removed 0 0

1002.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

1002.4 Active regular expressions

No regular expressions were active.

1002.5 Comparison detail

  1   # Demonstr ation cucu mber scrip t for perf orming a s et of perf ormance te sts using
  2   # the perf ormance te sting fram ework.
  3  
  4  
  5  
  6   require "a gilex-load gen"
  7  
  8  
  9   Given /^th at eVPR ha s ramped u p to a loa d of "([^" ]*)" reque sts per se cond after  "([^"]*)"  minutes a nd continu es for "([ ^"]*)" min utes$/ do  |typReqRat e, typRamp Time, typD uration|
  10     
  11       @Local ProjectRoo t = ENV["W ORKSPACE"]
  12       #@Loca lProjectRo ot = "~/Pr ojects/vis tacore/ehm p"
  13       @Targe tEnvName =  @LocalPro jectRoot +  "/infrast ructure/va grant/aws/ vista-exch ange"
  14       
  15       @Targe tHostName  = 've-api'
  16  
  17       # The  gem server  where agi lex-loadge n is hoste d.
  18       @Proje ctGemServe rURL = "ht tps://gem. vistacore. us"
  19       
  20       
  21       @typRe qRate = ty pReqRate
  22       @typRa mpTime = t ypRampTime
  23       @typDu ration = t ypDuration
  24       
  25       
  26       @rt1 =  LoadGener ator.reque stType :Ty picalReque st
  27           @r t1.tag "@p erf.FHIRht tparty"
  28           #@ rt1.tag "@ perf.spike delta" 
  29  
  30           @r t1.color=  "darkblue"   # See ht tp://www.d ecember.co m/html/spe c/colorsvg .html
  31       
  32       
  33       @d1 =  LoadGenera tor.distri bution :Ty picalDistr ibution, : ramp
  34       
  35           @d 1.level @t ypReqRate,  @typRampT ime  # ram p up to th e request  rate.
  36           @d 1.level @t ypReqRate,  @typDurat ion  # kee p the base  load goin g until th e end of t he test.
  37           
  38       
  39       @p1 =  LoadGenera tor.profil e :Typical Profile
  40  
  41           @p 1.requestT ype= :Typi calRequest
  42           @p 1.distribu tion= :Typ icalDistri bution
  43           
  44   end
  45           
  46           
  47   When /^the  load is i ncreased b y "([^"]*) " requests  per secon d after "( [^"]*)" mi nutes for  "([^"]*)"  minutes$/  do |spikeR eqRate, sp ikeDelay,  spikeDurat ion|
  48  
  49       @spike ReqRate =  spikeReqRa te
  50       @spike Delay = sp ikeDelay
  51       @spike Duration =  spikeDura tion
  52       
  53       @rt2 =  LoadGener ator.reque stType :Sp ikeRequest
  54           @r t2.tag "@p erf.FHIRht tparty"
  55           #@ rt2.tag "@ perf.spike delta"         
  56           #@ rt2.color=  "goldenro d"
  57           @r t2.color=  "forestgre en"
  58       
  59       
  60       @d2 =  LoadGenera tor.distri bution :Sp ikeDistrib ution, :ra mp
  61       
  62           @d 2.level 0. 0, spikeDe lay
  63           @d 2.level sp ikeReqRate , 0.01
  64           @d 2.level sp ikeReqRate , spikeDur ation
  65           @d 2.level 0. 0, 0.01
  66           
  67           
  68       @p2 =  LoadGenera tor.profil e :SpikePr ofile
  69       
  70           @p 2.requestT ype= :Spik eRequest
  71           @p 2.distribu tion= :Spi keDistribu tion
  72       
  73       
  74         #LoadGener ator.ipPoo l " IP         ", " IP           # needed b y VirtualB ox.
  75       
  76       puts " @LocalProj ectRoot=#{ @LocalProj ectRoot}"
  77       LoadGe nerator.re sultsDirec tory= @Loc alProjectR oot + "/pr oduct/test s/performa nce-tests/ results"
  78       
  79       @provi der = Load Generator. dynamicPro vider :aws conf  # fo r AWS
  80       #@prov ider = Loa dGenerator .providerC onfig :vbc onf  # for  VirtualBo x
  81           @p rovider.pr oviderName = :aws
  82           @p rovider.pr oviderBoxN ame= "aws- dummy"
  83           @p rovider.pr oviderBoxU RL= "https ://github. com/mitche llh/vagran t-aws/raw/ master/dum my.box"
  84           #@ provider.p roviderNam e= :virtua lbox
  85           #@ provider.p roviderBox Name= "ops code-cento s-6.3"
  86           #@ provider.p roviderBox URL= "http s://store. vistacore. us/reposit ories/file repo/com/v agrantup/b asebox/ops code-cento s/6.3/opsc ode-centos -6.3.box"
  87  
  88  
  89       @tr =  LoadGenera tor.testRu n :NormalT estRun
  90       
  91           @t r.provider Config= "a wsconf"
  92           #@ tr.provide rConfig= " vbconf"  #  for virtu albox
  93           
  94           re quire File .expand_pa th(@Target EnvName +  "/../Vagra ntfileUtil .rb")
  95           @t r.defineEn vVariable  "EHMP_IP",  Vagrantfi leUtil::AW S.get_priv ate_ip("vi sta-exchan ge", "ehmp ")
  96           @t r.defineEn vVariable  "VE_API_IP ", Vagrant fileUtil:: AWS.get_pr ivate_ip(" vista-exch ange", "ve -api")
  97           @t r.defineEn vVariable  "JDS_IP",  Vagrantfil eUtil::AWS .get_priva te_ip("vis ta-exchang e", "jds")
  98           
  99           @t r.projectG emServerUR L= @Projec tGemServer URL
  100           @t r.localPro jectRoot=  @LocalProj ectRoot
  101           @t r.projectN ame= "vist acore"
  102           @t r.projectR epoName= " ehmp"
  103           @t r.projectR epoURL= "h ttps://cod e.vistacor e.us/scm/a pp/ehmp.gi t"
  104           @t r.projectR epoFQDN= " code.vista core.us"
  105           @t r.gitUseri d= ENV['GI T_USER']
  106           @t r.gitPassw ord= ENV[' GIT_PASSWO RD']
  107  
  108           
  109           #  The featur es directo ry is rela tive to th e local pr oject root .
  110           @t r.features Directory=  "product/ tests/perf ormance-te sts/client -tests/fea tures"
  111           
  112           @t r.feature  "perf.FHIR httparty.f eature"
  113           #@ tr.feature  "perf.spi kedelta.fe ature"  #  commented  out becaus e this fea ture does  not match  any step.
  114           
  115           #  If feature s are NOT  specified,  then the  whole dire ctory will  be run.
  116           #  If feature s ARE spec ified, the n only tho se will be  run.
  117           #t r.feature  "features/ authentica tion/authe nticate_us er.feature "
  118           #t r.feature  "features/ get_vitals .feature"
  119  
  120           #  Draw graph s for thes e events.
  121           @t r.graphEve nt "vpr_al lergy"
  122           @t r.graphEve nt "vpr_vi tal"
  123           @t r.graphEve nt "vpr_pa tient"
  124           
  125           @t r.nodes= 2
  126           
  127           @t r.useProfi le :Typica lProfile
  128           
  129           @t r.useProfi le :SpikeP rofile
  130           
  131           #@ tr.reuseNo des  # re- provision  existing n odes if pr esent.
  132           @t r.keepNode s  # do no t destroy  nodes at t he end.
  133           
  134           @t r.start
  135           
  136   end
  137  
  138  
  139   Then /^at  "([^"]*)"  minutes af ter the sp ike ends,  the system  response  time still  averages  less than  "([^"]*)"  seconds fo r cached p atients$/  do |delay,  avgRespTi me|
  140       
  141       puts " Statistics :"
  142       puts " \tvpr_alle rgy: #{@tr .getStats( "vpr_aller gy", "Typi calRequest ", "SpikeR equest")}"
  143       puts " \tvpr_vita l: #{@tr.g etStats("v pr_vital",  "TypicalR equest", " SpikeReque st")}"
  144       puts " \tvpr_pati ent: #{@tr .getStats( "vpr_patie nt", "Typi calRequest ", "SpikeR equest")}"
  145       puts
  146       
  147       actual Avg_vpr_al lergy = @t r.avgRespo nseTimeAft er(@typDur ation + @s pikeDurati on + delay , "vpr_all ergy", "Ty picalReque st")
  148       actual Avg_vpr_vi tal = @tr. avgRespons eTimeAfter (@typDurat ion + @spi keDuration  + delay,  "vpr_vital ", "Typica lRequest")
  149       actual Avg_vpr_pa tient = @t r.avgRespo nseTimeAft er(@typDur ation + @s pikeDurati on + delay , "vpr_pat ient", "Ty picalReque st")
  150       
  151       raise  "Failed: a ctual aver age (#{act ualAvg_vpr _allergy})  > SLA (#{ avgRespTim e.to_f})"  unless act ualAvg_vpr _allergy < = avgRespT ime.to_f
  152       raise  "Failed: a ctual aver age (#{act ualAvg_vpr _vital}) >  SLA (#{av gRespTime. to_f})" un less actua lAvg_vpr_v ital <= av gRespTime. to_f
  153       raise  "Failed: a ctual aver age (#{act ualAvg_vpr _patient})  > SLA (#{ avgRespTim e.to_f})"  unless act ualAvg_vpr _patient < = avgRespT ime.to_f
  154       
  155   end