diff options
author | Larisa Grigorjeva <larisa.grigorjeva@zabbix.com> | 2022-10-28 09:43:25 +0300 |
---|---|---|
committer | Larisa Grigorjeva <larisa.grigorjeva@zabbix.com> | 2022-10-28 11:25:09 +0300 |
commit | 1bdcedc04d1deb98de7d440d0f892a8946535f15 (patch) | |
tree | 74b941ec7859b798b5d50d2985a020167edbcd27 | |
parent | d54a96cd0f0675d96a55bf14f5537f7f84df89ed (diff) |
.......... [ZBXNEXT-686] fixed time related tests
(cherry picked from commit 737aef0b96a1a5926946343af9c6201f46348d55)
-rw-r--r-- | ui/tests/include/helpers/CAPIHelper.php | 4 | ||||
-rw-r--r-- | ui/tests/selenium/testPageReportsActionLog.php | 5 | ||||
-rw-r--r-- | ui/tests/selenium/testPageReportsTriggerTop.php | 219 |
3 files changed, 172 insertions, 56 deletions
diff --git a/ui/tests/include/helpers/CAPIHelper.php b/ui/tests/include/helpers/CAPIHelper.php index 9817c20e926..788f776bc09 100644 --- a/ui/tests/include/helpers/CAPIHelper.php +++ b/ui/tests/include/helpers/CAPIHelper.php @@ -19,6 +19,7 @@ ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ + require_once 'vendor/autoload.php'; require_once dirname(__FILE__).'/../../../include/defines.inc.php'; @@ -75,12 +76,13 @@ class CAPIHelper { ] ]; - $handle = fopen($URL, 'rb', false, stream_context_create($params)); + $handle = @fopen($URL, 'rb', false, stream_context_create($params)); if ($handle) { $response = @stream_get_contents($handle); fclose($handle); } else { + $php_errormsg = CTestArrayHelper::get(error_get_last(), 'message'); $response = false; } diff --git a/ui/tests/selenium/testPageReportsActionLog.php b/ui/tests/selenium/testPageReportsActionLog.php index a737538a204..e0c0424df28 100644 --- a/ui/tests/selenium/testPageReportsActionLog.php +++ b/ui/tests/selenium/testPageReportsActionLog.php @@ -18,15 +18,14 @@ ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ + require_once dirname(__FILE__).'/../include/CLegacyWebTest.php'; class testPageReportsActionLog extends CLegacyWebTest { public function testPageReportsActionLog_CheckLayout() { - // from: 2012-02-20 09:00:00 - // to: 2014-02-19 09:00:00 // dates can be in relative format, example: now-1y/y, now-1w, now - $this->zbxTestLogin('auditacts.php?from=2012-02-20+09%3A00%3A00&to=2014-02-19+09%3A00%3A00'); + $this->zbxTestLogin('auditacts.php?from=now-2y&to=now'); $this->zbxTestCheckTitle('Action log'); $this->zbxTestAssertElementPresentId('config'); $this->zbxTestCheckHeader('Action log'); diff --git a/ui/tests/selenium/testPageReportsTriggerTop.php b/ui/tests/selenium/testPageReportsTriggerTop.php index 66748610ee6..8a752bc5036 100644 --- a/ui/tests/selenium/testPageReportsTriggerTop.php +++ b/ui/tests/selenium/testPageReportsTriggerTop.php @@ -18,12 +18,139 @@ ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. **/ + require_once dirname(__FILE__).'/../include/CLegacyWebTest.php'; use Facebook\WebDriver\WebDriverBy; +/** + * @backup hosts + * + * @onBefore prepareTriggersData + */ class testPageReportsTriggerTop extends CLegacyWebTest { + /** + * Id of the host with problems. + * + * @var integer + */ + protected static $hostid; + + /** + * Ids of the triggers for problems. + * + * @var array + */ + protected static $triggerids; + + /** + * Time when events were created. + * + * @var int + */ + protected static $one_year_ago_approx; + protected static $two_years_ago_approx; + protected static $three_months_ago_approx; + protected static $two_months_ago_approx; + + public function prepareTriggersData() { + // Create hostgroup for hosts with items triggers. + $hostgroups = CDataHelper::call('hostgroup.create', [['name' => 'Group for Reports Trigger']]); + $this->assertArrayHasKey('groupids', $hostgroups); + $groupid = $hostgroups['groupids'][0]; + + // Create host for items and triggers. + $hosts = CDataHelper::call('host.create', [ + 'host' => 'Host for Reports Trigger', + 'groups' => [['groupid' => $groupid]] + ]); + + $this->assertArrayHasKey('hostids', $hosts); + self::$hostid = $hosts['hostids'][0]; + + // Create items on previously created host. + $item_names = ['float', 'char', 'log', 'unsigned']; + + $items_data = []; + foreach ($item_names as $i => $item) { + $items_data[] = [ + 'hostid' => self::$hostid, + 'name' => $item, + 'key_' => $item, + 'type' => 2, + 'value_type' => $i + ]; + } + + $items = CDataHelper::call('item.create', $items_data); + $this->assertArrayHasKey('itemids', $items); + + // Create triggers based on items. + $triggers_data = []; + foreach ($item_names as $i => $item) { + $triggers_data[] = [ + 'description' => 'Reports trigger '.$i, + 'expression' => 'last(/Host for Reports Trigger/'.$item.')=0', + 'priority' => $i + ]; + } + + $triggers = CDataHelper::call('trigger.create', $triggers_data); + $this->assertArrayHasKey('triggerids', $triggers); + self::$triggerids = CDataHelper::getIds('description'); + + // Make timestamp a little less 1 year ago. + self::$one_year_ago_approx = time()-31449600; + + // Make timestamp a little less than 2 years ago. + self::$two_years_ago_approx = time()-62985600; + + // Make timestamp a little less than 3 months ago. + self::$three_months_ago_approx = time()-7872000; + + // Make timestamp a little less than 2 months ago. + self::$two_months_ago_approx = time()-5184000; + + DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005500, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 0']).', '.self::$one_year_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 0').', 0)' + ); + + DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005501, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 1']).', '.self::$two_years_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 1').', 1)' + ); + + DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005502, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 2']).', '.self::$three_months_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 2').', 2)' + ); + + DBexecute('INSERT INTO events (eventid, source, object, objectid, clock, ns, value, name, severity) VALUES (1005503, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 3']).', '.self::$two_months_ago_approx.', 0, 1, '.zbx_dbstr('Reports trigger 3').', 3)' + ); + + // Create problems. + DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005500, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 0']).', '.self::$one_year_ago_approx.', 0, '.zbx_dbstr('Reports trigger 0').', 0)' + ); + + DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005501, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 1']).', '.self::$two_years_ago_approx.', 0, '.zbx_dbstr('Reports trigger 1').', 1)' + ); + + DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005502, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 2']).', '.self::$three_months_ago_approx.', 0, '.zbx_dbstr('Reports trigger 2').', 2)' + ); + + DBexecute('INSERT INTO problem (eventid, source, object, objectid, clock, ns, name, severity) VALUES (1005503, 0, 0, '. + zbx_dbstr(self::$triggerids['Reports trigger 3']).', '.self::$two_months_ago_approx.', 0, '.zbx_dbstr('Reports trigger 3').', 3)' + ); + + // Change triggers' state to Problem. + DBexecute('UPDATE triggers SET value = 1 WHERE description IN ('.zbx_dbstr('Reports trigger 0').', '. + zbx_dbstr('Reports trigger 1').', '.zbx_dbstr('Reports trigger 2').', '.zbx_dbstr('Reports trigger 3').')' + ); + } + public function testPageReportsTriggerTop_FilterLayout() { $this->zbxTestLogin('toptriggers.php'); $this->zbxTestCheckTitle('100 busiest triggers'); @@ -53,22 +180,22 @@ class testPageReportsTriggerTop extends CLegacyWebTest { [ [ 'filter' => [ - 'host_group' => 'Zabbix servers' + 'host_group' => 'Group for Reports Trigger' ], 'date' => [ - 'from' => '2020-10-23 00:00', - 'to' => 'now/d' + 'from' => 'now-2y', + 'to' => 'now' ], 'result' => [ - 'Test trigger to check tag filter on problem page', - 'Test trigger with tag' + 'Reports trigger 0', + 'Reports trigger 1' ] ] ], [ [ 'filter' => [ - 'host_group' => 'Zabbix servers' + 'host_group' => 'Group for Reports Trigger' ], 'date' => [ 'from' => 'now/d', @@ -79,21 +206,23 @@ class testPageReportsTriggerTop extends CLegacyWebTest { [ [ 'filter' => [ - 'host_group' => 'Zabbix servers', - 'host' => 'ЗАББИКС Сервер' + 'host_group' => 'Group for Reports Trigger', + 'host' => 'Host for Reports Trigger' ], 'date' => [ - 'from' => '2020-10-23 17:00' + // Time is now - 2 years exactly. + 'from' => date('Y-m-d H:i', time()-62985600) ], 'result' => [ - 'Test trigger with tag' + 'Reports trigger 0', + 'Reports trigger 1' ] ] ], [ [ 'filter' => [ - 'host_group' => 'Zabbix servers', + 'host_group' => 'Group for Reports Trigger', 'host' => 'Host ZBX6663' ], 'date' => [ @@ -105,39 +234,40 @@ class testPageReportsTriggerTop extends CLegacyWebTest { [ [ 'filter' => [ - 'host_group' => 'Zabbix servers', - 'host' => 'ЗАББИКС Сервер' + 'host_group' => 'Group for Reports Trigger', + 'host' => 'Host for Reports Trigger' ], 'date' => [ - 'from' => '2020-10-22 04:01', - 'to' => '2020-10-24 04:01' + // Time around 1 year ago. + 'from' => date('Y-m-d H:i', time()-31449700), + 'to' => date('Y-m-d H:i', time()-31449500) ], 'result' => [ - 'Test trigger to check tag filter on problem page', - 'Test trigger with tag' + 'Reports trigger 0' ] ] ], [ [ 'filter' => [ - 'host_group' => 'Zabbix servers', - 'host' => 'ЗАББИКС Сервер' + 'host_group' => 'Group for Reports Trigger', + 'host' => 'Host for Reports Trigger' ], 'date' => [ - 'from' => '2020-10-26 00:00', - 'to' => 'now/d' + 'from' => date('Y-m-d H:i', time()-5183000), + 'to' => 'now-1d/d' ] ] ], [ [ 'date' => [ - 'from' => '2020-10-23 15:35', - 'to' => '2020-10-23 15:36' + // Time around 3 months ago. + 'from' => date('Y-m-d H:i', time()-7872400), + 'to' => date('Y-m-d H:i', time()-7870800) ], 'result' => [ - 'Trigger for tag permissions MySQL' + 'Reports trigger 2' ] ] ], @@ -145,16 +275,16 @@ class testPageReportsTriggerTop extends CLegacyWebTest { [ 'filter' => [ 'severities' => [ - 'Average', + 'Warning', 'High', 'Disaster' ] ], 'date' => [ - 'from' => '2020-10-22 00:00' + 'from' => 'now-2y' ], 'result' => [ - 'Test trigger to check tag filter on problem page' + 'Reports trigger 2' ] ] ], @@ -167,19 +297,20 @@ class testPageReportsTriggerTop extends CLegacyWebTest { ] ], 'date' => [ - 'from' => '2020-10-22 00:00' + 'from' => 'now-2y' ] ] ], [ [ 'date' => [ - 'from' => '2020-10-23 15:33', - 'to' => '2020-10-23 15:36' + // Time interval 3 -2 months ago. + 'from' => date('Y-m-d H:i', time()-7872400), + 'to' => date('Y-m-d H:i', time()-5183000) ], 'result' => [ - 'Test trigger to check tag filter on problem page', - 'Trigger for tag permissions MySQL' + 'Reports trigger 2', + 'Reports trigger 3' ] ] ] @@ -196,33 +327,17 @@ class testPageReportsTriggerTop extends CLegacyWebTest { $this->zbxTestClickButtonText('Reset'); $this->zbxTestWaitForPageToLoad(); + $filter_form = $this->query('name:zbx_filter')->asForm()->one(); + if (array_key_exists('filter', $data)) { $filter = $data['filter']; if (array_key_exists('host_group', $filter)) { - $this->zbxTestClickButtonMultiselect('groupids_'); - $this->zbxTestLaunchOverlayDialog('Host groups'); - $this->zbxTestClickLinkTextWait($filter['host_group']); - $this->zbxTestWaitUntilElementNotVisible(WebDriverBy::xpath('//div[contains(@class, "overlay-dialogue modal")]')); - $this->zbxTestMultiselectAssertSelected('groupids_', $filter['host_group']); + $filter_form->fill(['Host groups' => $filter['host_group']]); } if (array_key_exists('host', $filter)) { - $this->zbxTestClickButtonMultiselect('hostids_'); - $this->zbxTestLaunchOverlayDialog('Hosts'); - COverlayDialogElement::find()->one()->query('class:multiselect-button')->one()->click(); - $this->zbxTestLaunchOverlayDialog('Host groups'); - $groups_form = $this->query('name:hostGroupsform')->one(); - $all_groups = $groups_form->query('xpath:.//a')->all()->asText(); - $groups = ['Host group for tag permissions', 'Zabbix servers', 'ZBX6648 All Triggers', - 'ZBX6648 Disabled Triggers', 'ZBX6648 Enabled Triggers']; - $this->assertTrue(count(array_diff($groups, $all_groups)) === 0); - $groups_form->query('xpath://a[text()="Zabbix servers"]')->one()->click(); - COverlayDialogElement::find()->one()->waitUntilReady(); - $this->zbxTestClickXpathWait('//div[contains(@class, "overlay-dialogue modal")]//a[text()="'. - $filter['host'].'"]'); - $this->zbxTestWaitUntilElementNotVisible(WebDriverBy::xpath('//div[contains(@class, "overlay-dialogue modal")]')); - $this->zbxTestMultiselectAssertSelected('hostids_', $filter['host']); + $filter_form->fill(['Hosts' => $filter['host']]); } if (array_key_exists('severities', $filter)) { |