Commit 58ba7a98e028f35c4084c8aef0164a64a7c517d7
0 parents
Exists in
master
Corre??o: removido o c?digo do arquivo de template HTML e acrescentado o c?digo …
…do Google Analytics em CoffeeScript
Showing
15 changed files
with
447 additions
and
0 deletions
Show diff stats
1 | +++ a/LEIAME | |
... | ... | @@ -0,0 +1,34 @@ |
1 | +Projeto Barra Brasil Distribuída - Desenvolvimento | |
2 | + | |
3 | +Como instalar | |
4 | + | |
5 | +Dependências: | |
6 | + | |
7 | + - Flask | |
8 | + - assetgen | |
9 | + - node.js | |
10 | + - coffeescript | |
11 | + - sass | |
12 | + | |
13 | +Requisitos da Barra | |
14 | + | |
15 | +1. A Barra deve ser adaptável a um desenho fluído e fixo | |
16 | +2. A Barra deve suportar diferentes opções de cor de fundo | |
17 | +3. A Barra deve suportar a inclusão dinâmica do nome da organização | |
18 | +4. A Barra deve funcionar nos navegadores: | |
19 | + Internet Explorer versão 8 ou superior | |
20 | + Mozilla Firefox versão | |
21 | + Google Chrome versão | |
22 | + Safari versão | |
23 | + Opera versão | |
24 | + Navegadores de dispositivos móveis | |
25 | + | |
26 | +5. A Barra deve degradar graciosamente (graceful degradation ou progressive enhancement) clientes que não possuam compatibilidade ou no qual o javascript esteja desligado | |
27 | + | |
28 | +6. A barra deve ser acessível | |
29 | + | |
30 | +Considerações sobre a arquitetura | |
31 | + | |
32 | +1. A barra será hospedada em local centralizado e chamada de forma distribuída pelos portais institucionais | |
33 | + | |
34 | +2. A barra será incluída via javascript minificado, | ... | ... |
1 | +++ a/app/barrabrasil.py | |
... | ... | @@ -0,0 +1,42 @@ |
1 | +from flask import Flask, url_for, render_template, request, Response, make_response | |
2 | +import hashlib | |
3 | +app = Flask(__name__) | |
4 | + | |
5 | +@app.route('/') | |
6 | +def pagina_teste(): | |
7 | + # apos o desenvolvimento substituir por redirect para e-pwg | |
8 | + bootstrap = ''' | |
9 | + <html> | |
10 | + <head></head> | |
11 | + <body> | |
12 | + <div id="barra-brasil"><a href="http://brasil.gov.br" style="background:#7F7F7F; height: 20px; padding:4px 0 4px 10px; display: block; font-family:sans,sans-serif; text-decoration:none; color:white; ">Portal do Governo Brasileiro</a></div> | |
13 | + <script src="barra.js?cor=verde" type="text/javascript"></script> | |
14 | + </body> | |
15 | + </html> | |
16 | + ''' | |
17 | + return bootstrap # % url_for('static', filename='barra-brasil.js') | |
18 | + | |
19 | +@app.route('/barra.js') | |
20 | +def barra(): | |
21 | + nome_cor = request.args.get('cor', 'azul') | |
22 | + paleta = { | |
23 | + 'azul': '#004B82', | |
24 | + 'preta': '#000000', | |
25 | + 'cinza': '#7F7F7F', | |
26 | + 'verde': '#00500F', | |
27 | + } | |
28 | + cor = paleta.get(nome_cor, '#004B82') | |
29 | + conteudo = render_template('barra-brasil.js', cor=cor) | |
30 | + etag = hashlib.sha1(conteudo.encode('utf-8')).hexdigest() | |
31 | + if request.if_none_match and \ | |
32 | + etag in request.if_none_match: | |
33 | + resposta = Response(status=304) | |
34 | + else: # nao esta em cache do navegador | |
35 | + resposta = make_response(conteudo) | |
36 | + resposta.set_etag(etag) | |
37 | + resposta.headers['Content-type'] = 'application/javascript' | |
38 | + resposta.headers['Cache-control'] = 'max-age: 3600' | |
39 | + return resposta | |
40 | + | |
41 | +if __name__ == '__main__': | |
42 | + app.run(debug=True) | ... | ... |
1 | +++ a/app/static/estilo-barra.css | |
... | ... | @@ -0,0 +1,64 @@ |
1 | +/* http://meyerweb.com/eric/tools/css/reset/ | |
2 | + v2.0 | 20110126 | |
3 | + License: none (public domain) | |
4 | +*/ | |
5 | + | |
6 | + | |
7 | +#barra-brasil div, #barra-brasil a, #barra-brasil ul, #barra-brasil li{ | |
8 | + margin: 0; | |
9 | + padding: 0; | |
10 | + border: 0; | |
11 | + font-size: 100%; | |
12 | + font-family: inherit; | |
13 | + vertical-align: baseline; | |
14 | +} | |
15 | + | |
16 | +body { | |
17 | + line-height: 1; | |
18 | +} | |
19 | +#barra-brasil ul { | |
20 | + list-style: none; | |
21 | +} | |
22 | + | |
23 | +/* Ministerio do Planejamento */ | |
24 | + | |
25 | +#barra-brasil { | |
26 | + position:relative; | |
27 | + overflow:hidden; | |
28 | + min-width:1000px; | |
29 | + background: #7F7F7F url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAJxAAAAACCAMAAADJlDaXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRF/7QAAGsKAAAAGc+b7gAAAAN0Uk5T//8A18oNQQAAADVJREFUeNrs2DEBAAAIwCC1f2hT7IMYzAIAAAAAuQMAAAAAcgMAAAAA9FQkAAAAAPReAAEGAIRVYanUtckGAAAAAElFTkSuQmCC") center bottom no-repeat; | |
30 | +} | |
31 | + | |
32 | +#barra-brasil .barra { | |
33 | + display: block; | |
34 | + width: 960px; | |
35 | + height:28px; | |
36 | + margin: 0 auto; | |
37 | + background: url("data:image/gif;base64,R0lGODlhAQACAIAAAP+0AABrCiH5BAAAAAAALAAAAAABAAIAAAICDAoAOw==") 0 bottom repeat-x; | |
38 | +} | |
39 | + | |
40 | +#barra-brasil .barra ul { | |
41 | + float:right; | |
42 | + width: 319px; | |
43 | +} | |
44 | + | |
45 | +#barra-brasil .barra ul li { | |
46 | + float: left; | |
47 | + padding-left: 25px; | |
48 | +} | |
49 | + | |
50 | +#barra-brasil .ai { | |
51 | + display: block; | |
52 | + width: 161px; | |
53 | + height: 28px; | |
54 | + text-indent: -99999px; | |
55 | + background: #7F7F7F url("data:image/png;base64,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") no-repeat 0 4px; | |
56 | +} | |
57 | + | |
58 | +#barra-brasil .brasilgov { | |
59 | + display: block; | |
60 | + width: 108px; | |
61 | + height: 28px; | |
62 | + text-indent: -99999px; | |
63 | + background: #7F7F7F url("data:image/png;base64,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") no-repeat 0 4px; | |
64 | +} | ... | ... |
1 | +++ a/assets/barra-brasil.coffee | |
... | ... | @@ -0,0 +1,22 @@ |
1 | + divBarra = document.getElementById("barra-brasil") | |
2 | + head = document.getElementsByTagName("head")[0] | |
3 | + link = document.createElement("link") | |
4 | + href = document.createAttribute("href") | |
5 | + | |
6 | + # src.nodeValue = "http://barra.brasil.gov.br/estilo-barra.css"; | |
7 | + # href.nodeValue = "http://189.9.137.173/estilo-barra.css"; | |
8 | + # href.nodeValue = "static/estilo-barra.css" | |
9 | + window._barrabrasil = | |
10 | + insere_css: (css) -> | |
11 | + style = document.createElement("style") | |
12 | + tipo = document.createAttribute("type") | |
13 | + tipo.nodeValue = "text/css" | |
14 | + media = document.createAttribute("media") | |
15 | + media.nodeValue = "all" | |
16 | + conteudo = document.createTextNode(css) | |
17 | + style.setAttributeNode tipo | |
18 | + style.setAttributeNode media | |
19 | + style.appendChild conteudo | |
20 | + head.appendChild style | |
21 | + | |
22 | + divBarra.innerHTML = conteudoBarra | ... | ... |
1 | +++ a/assets/conteudo-barra.html | |
... | ... | @@ -0,0 +1 @@ |
1 | +<div class="barra"><ul><li><a href="http://www.acessoainformacao.gov.br" class="ai" title="Acesso à informação">www.sic.gov.br</a></li><li><a href="http://www.brasil.gov.br" class="brasilgov" title="Portal de Estado do Brasil">www.brasil.gov.br</a></li></ul></div> | |
0 | 2 | \ No newline at end of file | ... | ... |
1 | +++ a/assets/estilo-barra.scss | |
... | ... | @@ -0,0 +1,62 @@ |
1 | +/* http://meyerweb.com/eric/tools/css/reset/ | |
2 | + v2.0 | 20110126 | |
3 | + License: none (public domain) | |
4 | +*/ | |
5 | + | |
6 | +#barra-brasil { | |
7 | + div, a, ul, li { | |
8 | + margin: 0; | |
9 | + padding: 0; | |
10 | + border: 0; | |
11 | + font-size: 100%; | |
12 | + font-family: inherit; | |
13 | + vertical-align: baseline; | |
14 | + } | |
15 | +} | |
16 | + | |
17 | +body { | |
18 | + line-height: 1; | |
19 | +} | |
20 | + | |
21 | +#barra-brasil ul { | |
22 | + list-style: none; | |
23 | +} | |
24 | + | |
25 | +/* Ministerio do Planejamento */ | |
26 | + | |
27 | +#barra-brasil { | |
28 | + position: relative; | |
29 | + overflow: hidden; | |
30 | + min-width: 1000px; | |
31 | + $cor: \{\{ cor \}\}; | |
32 | + background: $cor embed("imagens/barra-brasil-v3-bgx.png") center bottom no-repeat; | |
33 | + .barra { | |
34 | + display: block; | |
35 | + width: 960px; | |
36 | + height: 28px; | |
37 | + margin: 0 auto; | |
38 | + background: embed("imagens/barra-brasil-v3-bgx.gif") 0 bottom repeat-x; | |
39 | + ul { | |
40 | + float: right; | |
41 | + width: 319px; | |
42 | + li { | |
43 | + float: left; | |
44 | + padding-left: 25px; | |
45 | + } | |
46 | + } | |
47 | + } | |
48 | + .ai { | |
49 | + display: block; | |
50 | + width: 161px; | |
51 | + height: 28px; | |
52 | + text-indent: -99999px; | |
53 | + background: $cor embed("imagens/ai.png") no-repeat 0 4px; | |
54 | + } | |
55 | + .brasilgov { | |
56 | + display: block; | |
57 | + width: 108px; | |
58 | + height: 28px; | |
59 | + text-indent: -99999px; | |
60 | + background: $cor embed("imagens/brasil.png") no-repeat 0 4px; | |
61 | + } | |
62 | +} | ... | ... |
1 | +++ a/assets/google-analytics.coffee | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +_gaq = _gaq or [] | |
2 | +_gaq.push ["_setAccount", "UA-37670561-1"] | |
3 | +_gaq.push ["_setDomainName", "gov.br"] | |
4 | +_gaq.push ["_trackPageview"] | |
5 | +(-> | |
6 | + ga = document.createElement("script") | |
7 | + ga.type = "text/javascript" | |
8 | + ga.async = true | |
9 | + ga.src = ((if "https:" is document.location.protocol then "https://ssl" else "http://www")) + ".google-analytics.com/ga.js" | |
10 | + s = document.getElementsByTagName("script")[0] | |
11 | + s.parentNode.insertBefore ga, s | |
12 | +)() | ... | ... |
5.58 KB
43 Bytes
183 Bytes
5.6 KB
1 | +++ a/barra-brasil-1.yaml | |
... | ... | @@ -0,0 +1,42 @@ |
1 | +# configuracao do assetgen para: | |
2 | +# - gerar o script de comportamento, minificado | |
3 | +# - gerar o css com as imagens incorporadas | |
4 | + | |
5 | +generate: | |
6 | + | |
7 | +- barra-brasil.js: | |
8 | + source: | |
9 | + - assets/conteudo-barra.html | |
10 | + - assets/barra-brasil.coffee | |
11 | + - assets/google-analytics.coffee | |
12 | + - raw: "})();" # fechamento do escopo da funcao anonima (ver template abaixo) | |
13 | + template: | | |
14 | + (function(){ | |
15 | + var conteudoBarra = '${source|trim}'; | |
16 | + | |
17 | +- estilo-barra.css: | |
18 | + source: | |
19 | + - assets/estilo-barra.scss | |
20 | + depends: | |
21 | + - assets/imagens/* | |
22 | + embed.path.root: assets | |
23 | + embed.url.base: imagens/ | |
24 | + | |
25 | +- barra-brasil-css.js: | |
26 | + source: | |
27 | + - build/estilo-barra.css | |
28 | + template: | | |
29 | + window._barrabrasil.insere_css('${source|trim}'); | |
30 | + | |
31 | +css.embed: true | |
32 | +css.embed.only: true | |
33 | +css.compress: true | |
34 | +js.compress: false | |
35 | +js.uglify.bin: uglifyjs | |
36 | +output.directory: build | |
37 | +output.hashed: false | |
38 | +output.manifest: app/assets.json | |
39 | + | |
40 | +profile.dev: | |
41 | + css.compress: false | |
42 | + js.compress: false | ... | ... |
1 | +++ a/barra-brasil-2.yaml | |
... | ... | @@ -0,0 +1,20 @@ |
1 | +# configuracao do assetgen para: | |
2 | +# - mesclar o css com javascript de comportamento | |
3 | + | |
4 | +generate: | |
5 | + | |
6 | +- barra-brasil.js: | |
7 | + source: | |
8 | + - build/barra-brasil.js # parte de comportamento | |
9 | + - build/barra-brasil-css.js # codigo de insercao do css | |
10 | + uglify.bin: uglifyjs | |
11 | + | |
12 | +css.embed: true | |
13 | +css.embed.only: true | |
14 | +output.directory: app/templates | |
15 | +output.hashed: false | |
16 | +output.manifest: assets.json | |
17 | + | |
18 | +profile.dev: | |
19 | + css.compress: false | |
20 | + js.compress: false | ... | ... |
47.2 KB
1 | +++ a/test/Teste de stress.jmx | |
... | ... | @@ -0,0 +1,148 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<jmeterTestPlan version="1.2" properties="2.3" jmeter="2.8 r1393162"> | |
3 | + <hashTree> | |
4 | + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Stress Bitch!" enabled="true"> | |
5 | + <stringProp name="TestPlan.comments">Teste de stress genérico</stringProp> | |
6 | + <boolProp name="TestPlan.functional_mode">false</boolProp> | |
7 | + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> | |
8 | + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> | |
9 | + <collectionProp name="Arguments.arguments"/> | |
10 | + </elementProp> | |
11 | + <stringProp name="TestPlan.user_define_classpath"></stringProp> | |
12 | + </TestPlan> | |
13 | + <hashTree> | |
14 | + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Web Test" enabled="true"> | |
15 | + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> | |
16 | + <boolProp name="LoopController.continue_forever">false</boolProp> | |
17 | + <stringProp name="LoopController.loops">100</stringProp> | |
18 | + </elementProp> | |
19 | + <stringProp name="ThreadGroup.num_threads">1000</stringProp> | |
20 | + <stringProp name="ThreadGroup.ramp_time">0</stringProp> | |
21 | + <longProp name="ThreadGroup.start_time">1356091419000</longProp> | |
22 | + <longProp name="ThreadGroup.end_time">1356091419000</longProp> | |
23 | + <boolProp name="ThreadGroup.scheduler">false</boolProp> | |
24 | + <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> | |
25 | + <stringProp name="ThreadGroup.duration"></stringProp> | |
26 | + <stringProp name="ThreadGroup.delay"></stringProp> | |
27 | + </ThreadGroup> | |
28 | + <hashTree> | |
29 | + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> | |
30 | + <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> | |
31 | + <collectionProp name="Arguments.arguments"/> | |
32 | + </elementProp> | |
33 | + <stringProp name="HTTPSampler.domain">barra.brasil.gov.br</stringProp> | |
34 | + <stringProp name="HTTPSampler.port"></stringProp> | |
35 | + <stringProp name="HTTPSampler.connect_timeout"></stringProp> | |
36 | + <stringProp name="HTTPSampler.response_timeout"></stringProp> | |
37 | + <stringProp name="HTTPSampler.protocol"></stringProp> | |
38 | + <stringProp name="HTTPSampler.contentEncoding"></stringProp> | |
39 | + <stringProp name="HTTPSampler.path"></stringProp> | |
40 | + <stringProp name="HTTPSampler.method">GET</stringProp> | |
41 | + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> | |
42 | + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> | |
43 | + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> | |
44 | + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> | |
45 | + <boolProp name="HTTPSampler.monitor">false</boolProp> | |
46 | + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> | |
47 | + </HTTPSamplerProxy> | |
48 | + <hashTree/> | |
49 | + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> | |
50 | + <boolProp name="ResultCollector.error_logging">false</boolProp> | |
51 | + <objProp> | |
52 | + <name>saveConfig</name> | |
53 | + <value class="SampleSaveConfiguration"> | |
54 | + <time>true</time> | |
55 | + <latency>true</latency> | |
56 | + <timestamp>true</timestamp> | |
57 | + <success>true</success> | |
58 | + <label>true</label> | |
59 | + <code>true</code> | |
60 | + <message>true</message> | |
61 | + <threadName>true</threadName> | |
62 | + <dataType>true</dataType> | |
63 | + <encoding>false</encoding> | |
64 | + <assertions>true</assertions> | |
65 | + <subresults>true</subresults> | |
66 | + <responseData>false</responseData> | |
67 | + <samplerData>false</samplerData> | |
68 | + <xml>true</xml> | |
69 | + <fieldNames>false</fieldNames> | |
70 | + <responseHeaders>false</responseHeaders> | |
71 | + <requestHeaders>false</requestHeaders> | |
72 | + <responseDataOnError>false</responseDataOnError> | |
73 | + <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | |
74 | + <assertionsResultsToSave>0</assertionsResultsToSave> | |
75 | + <bytes>true</bytes> | |
76 | + </value> | |
77 | + </objProp> | |
78 | + <stringProp name="filename"></stringProp> | |
79 | + </ResultCollector> | |
80 | + <hashTree/> | |
81 | + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> | |
82 | + <boolProp name="ResultCollector.error_logging">false</boolProp> | |
83 | + <objProp> | |
84 | + <name>saveConfig</name> | |
85 | + <value class="SampleSaveConfiguration"> | |
86 | + <time>true</time> | |
87 | + <latency>true</latency> | |
88 | + <timestamp>true</timestamp> | |
89 | + <success>true</success> | |
90 | + <label>true</label> | |
91 | + <code>true</code> | |
92 | + <message>true</message> | |
93 | + <threadName>true</threadName> | |
94 | + <dataType>true</dataType> | |
95 | + <encoding>false</encoding> | |
96 | + <assertions>true</assertions> | |
97 | + <subresults>true</subresults> | |
98 | + <responseData>false</responseData> | |
99 | + <samplerData>false</samplerData> | |
100 | + <xml>true</xml> | |
101 | + <fieldNames>false</fieldNames> | |
102 | + <responseHeaders>false</responseHeaders> | |
103 | + <requestHeaders>false</requestHeaders> | |
104 | + <responseDataOnError>false</responseDataOnError> | |
105 | + <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | |
106 | + <assertionsResultsToSave>0</assertionsResultsToSave> | |
107 | + <bytes>true</bytes> | |
108 | + </value> | |
109 | + </objProp> | |
110 | + <stringProp name="filename"></stringProp> | |
111 | + </ResultCollector> | |
112 | + <hashTree/> | |
113 | + <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true"> | |
114 | + <boolProp name="ResultCollector.error_logging">false</boolProp> | |
115 | + <objProp> | |
116 | + <name>saveConfig</name> | |
117 | + <value class="SampleSaveConfiguration"> | |
118 | + <time>true</time> | |
119 | + <latency>true</latency> | |
120 | + <timestamp>true</timestamp> | |
121 | + <success>true</success> | |
122 | + <label>true</label> | |
123 | + <code>true</code> | |
124 | + <message>true</message> | |
125 | + <threadName>true</threadName> | |
126 | + <dataType>true</dataType> | |
127 | + <encoding>false</encoding> | |
128 | + <assertions>true</assertions> | |
129 | + <subresults>true</subresults> | |
130 | + <responseData>false</responseData> | |
131 | + <samplerData>false</samplerData> | |
132 | + <xml>true</xml> | |
133 | + <fieldNames>false</fieldNames> | |
134 | + <responseHeaders>false</responseHeaders> | |
135 | + <requestHeaders>false</requestHeaders> | |
136 | + <responseDataOnError>false</responseDataOnError> | |
137 | + <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage> | |
138 | + <assertionsResultsToSave>0</assertionsResultsToSave> | |
139 | + <bytes>true</bytes> | |
140 | + </value> | |
141 | + </objProp> | |
142 | + <stringProp name="filename"></stringProp> | |
143 | + </ResultCollector> | |
144 | + <hashTree/> | |
145 | + </hashTree> | |
146 | + </hashTree> | |
147 | + </hashTree> | |
148 | +</jmeterTestPlan> | ... | ... |