Skip to content

Commit d176ffb

Browse files
committed
adding browser console to the report
1 parent 7d8f40c commit d176ffb

File tree

5 files changed

+28
-5
lines changed

5 files changed

+28
-5
lines changed

changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Version log
22
## 0.0.7dev
3+
### Thu 12 Oct 18:30:11 CEST 2023
4+
- tests:
5+
- capturing browser console to the report folder *console.log*
36
### Thu 12 Oct 13:11:11 BST 2023
47
- issue#62 : delete frames
58
- simple new feature

tests/conftest.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ def pytest_addoption(parser):
99
parser.addoption('--ip' ,action="store" ,default="localhost")
1010
parser.addoption('--address' ,action="store" ,default='')
1111
parser.addoption('--sleep' ,action="store" ,default=0.3)
12+
parser.addoption('--report' ,action='store' ,default="")#"console.log")
1213
parser.addoption('--headless' ,action='store_true',default=False)
1314

1415
parser.addoption("--slow", action="store_true", default=False, help="run slow tests")
@@ -51,7 +52,7 @@ def pytest_collection_modifyitems(config, items):
5152

5253
lvl = int(config.getoption("--lvl"))
5354
for item in items:
54-
for i in range(1,3):
55+
for i in range(1,5):
5556
if "lvl%d" %i in item.keywords:
5657
reason="test level marked as lvl{test_level}>{lvl}".format(test_level=i,lvl=lvl)
5758
item.add_marker(pytest.mark.skipif(lvl<i, reason=reason))
@@ -82,6 +83,8 @@ def chrome_driver(pytestconfig):
8283
options.add_argument('--headless')
8384
address=get_address(pytestconfig)
8485

86+
options.set_capability("goog:loggingPrefs", {"performance": "ALL", "browser": "ALL"})
87+
8588
chrome_driver = webdriver.Chrome(options=options)
8689
# chrome_driver.set_network_conditions(offline=True,latency=5,throughput=500*1024)
8790
# print(address)
@@ -106,3 +109,7 @@ def sec(pytestconfig):
106109
@pytest.fixture(scope="package")
107110
def address(pytestconfig):
108111
return get_address(pytestconfig)
112+
113+
@pytest.fixture(scope="package")
114+
def report(pytestconfig):
115+
return pytestconfig.getoption('--report')

tests/email_report.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
msg.attach(MIMEText(body, "plain"))
4040

4141
#### attachments
42-
for filename in ['server.log','pytest.log','report.html']:
42+
for filename in ['server.log','pytest.log','report.html','console.log']:
4343
with open(os.path.join(folder,filename), "rb") as attachment:
4444
part = MIMEBase("application", "octet-stream")
4545
part.set_payload(attachment.read())

tests/run_tests.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ while getopts ":l:a:A:p:s:m:rdHReCh" arg; do
8484
;;
8585
s)
8686
sleep=$OPTARG
87-
args+="--sleep=$sleep"
87+
args+=" --sleep=$sleep "
8888
;;
8989
r)
9090
report_dir='report_rel'
@@ -123,7 +123,9 @@ if [ $do_report -eq 1 ];then
123123

124124
report_log="$report_dir/run_tests.log"
125125
server_log="$report_dir/server.log"
126-
126+
console_log="$report_dir/console.log"
127+
args+=" --report=$console_log "
128+
127129
cd $dir/..
128130
echo 'Launching server for reporting' >> "tests/$report_log"; tail -n1 "tests/$report_log"
129131
$env_bin/python3 serve.py -p $port &> "tests/$server_log" &
@@ -209,6 +211,7 @@ fi
209211
if [ $do_report -eq 1 ];then
210212
echo "Shutting down server used for pytest" >> $report_log; tail -n1 $report_log
211213
kill $server_pid
214+
cat $pytest_log
212215
if [ $send_email -eq 1 ];then
213216
echo "Sending email to $email_address" >> $report_log; tail -n1 $report_log
214217
cmd="$env_bin/python3 email_report.py -f=$report_dir"

tests/test_close.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ def test_delete_struct(chrome_driver,sec):
2828
sleep(2)
2929

3030
@pytest.mark.new
31-
def test_close(chrome_driver):
31+
def test_close(chrome_driver,report):
3232
print(colors.green+"\nclosing browser. Good bye"+colors.black)
33+
log_entries = chrome_driver.get_log("performance")
34+
entries = chrome_driver.get_log('browser')
35+
36+
msg='\n'.join([entry['message'] for entry in entries
37+
if entry['source']=='console-api'])
38+
# print(msg)
39+
if report:
40+
with open(report,'w') as f :
41+
f.write(msg)
42+
3343
chrome_driver.close()

0 commit comments

Comments
 (0)