mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 02:21:29 +08:00
0.9.5:
1, remove PyUnitReport dependency; 2, add built-in html report; 3, support pass in html report template, in Jinja2 format.
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
from httprunner.task import TaskSuite
|
||||
from pyunitreport import HTMLTestRunner
|
||||
from tests.base import ApiServerUnittest
|
||||
|
||||
|
||||
class TestCli(ApiServerUnittest):
|
||||
|
||||
def setUp(self):
|
||||
testset_path = "tests/data/demo_testset_cli.yml"
|
||||
output_folder_name = os.path.basename(os.path.splitext(testset_path)[0])
|
||||
self.kwargs = {
|
||||
"output": output_folder_name
|
||||
}
|
||||
self.task_suite = TaskSuite(testset_path)
|
||||
self.report_save_dir = os.path.join(os.getcwd(), 'reports', output_folder_name)
|
||||
self.reset_all()
|
||||
|
||||
def reset_all(self):
|
||||
url = "%s/api/reset-all" % self.host
|
||||
headers = self.get_authenticated_headers()
|
||||
return self.api_client.get(url, headers=headers)
|
||||
|
||||
def test_run_times(self):
|
||||
result = HTMLTestRunner(**self.kwargs).run(self.task_suite)
|
||||
self.assertEqual(result.testsRun, 10)
|
||||
shutil.rmtree(self.report_save_dir)
|
||||
|
||||
def test_skip(self):
|
||||
result = HTMLTestRunner(**self.kwargs).run(self.task_suite)
|
||||
self.assertEqual(len(result.skipped), 4)
|
||||
shutil.rmtree(self.report_save_dir)
|
||||
46
tests/test_httprunner.py
Normal file
46
tests/test_httprunner.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from httprunner import HttpRunner
|
||||
from tests.base import ApiServerUnittest
|
||||
|
||||
|
||||
class TestHttpRunner(ApiServerUnittest):
|
||||
|
||||
def setUp(self):
|
||||
self.testset_path = "tests/data/demo_testset_cli.yml"
|
||||
self.reset_all()
|
||||
|
||||
def reset_all(self):
|
||||
url = "%s/api/reset-all" % self.host
|
||||
headers = self.get_authenticated_headers()
|
||||
return self.api_client.get(url, headers=headers)
|
||||
|
||||
def test_text_run_times(self):
|
||||
kwargs = {
|
||||
"gen_html_report": False
|
||||
}
|
||||
result = HttpRunner(self.testset_path, **kwargs).run()
|
||||
self.assertEqual(result["stat"]["testsRun"], 10)
|
||||
|
||||
def test_text_skip(self):
|
||||
kwargs = {
|
||||
"gen_html_report": False
|
||||
}
|
||||
result = HttpRunner(self.testset_path, **kwargs).run()
|
||||
self.assertEqual(result["stat"]["skipped"], 4)
|
||||
|
||||
def test_html_report(self):
|
||||
kwargs = {
|
||||
"gen_html_report": True
|
||||
}
|
||||
output_folder_name = os.path.basename(os.path.splitext(self.testset_path)[0])
|
||||
run_kwargs = {
|
||||
"html_report_name": output_folder_name
|
||||
}
|
||||
result = HttpRunner(self.testset_path).run(**run_kwargs)
|
||||
self.assertEqual(result["stat"]["testsRun"], 10)
|
||||
self.assertEqual(result["stat"]["skipped"], 4)
|
||||
|
||||
report_save_dir = os.path.join(os.getcwd(), 'reports', output_folder_name)
|
||||
shutil.rmtree(report_save_dir)
|
||||
@@ -78,50 +78,50 @@ class TestRunner(ApiServerUnittest):
|
||||
def test_run_testset_hardcode(self):
|
||||
for testcase_file_path in self.testcase_file_path_list:
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertTrue(result["success"])
|
||||
|
||||
def test_run_testsets_hardcode(self):
|
||||
result = HttpRunner(self.testcase_file_path_list).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertEqual(result.stat.total, 6)
|
||||
self.assertEqual(result.stat.successes, 6)
|
||||
self.assertTrue(result["success"])
|
||||
self.assertEqual(result["stat"]["testsRun"], 6)
|
||||
self.assertEqual(result["stat"]["successes"], 6)
|
||||
|
||||
def test_run_testset_template_variables(self):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_testset_variables.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertTrue(result["success"])
|
||||
|
||||
def test_run_testset_template_import_functions(self):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_testset_template_import_functions.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertTrue(result["success"])
|
||||
|
||||
def test_run_testsets_template_import_functions(self):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_testset_template_import_functions.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertTrue(result["success"])
|
||||
|
||||
def test_run_testsets_template_lambda_functions(self):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_testset_template_lambda_functions.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertTrue(result["success"])
|
||||
|
||||
def test_run_testset_layered(self):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_testset_layer.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertTrue(result["success"])
|
||||
|
||||
def test_run_testset_output(self):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_testset_layer.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertIn("token", result.output)
|
||||
self.assertTrue(result["success"])
|
||||
self.assertIn("token", result["output"])
|
||||
|
||||
def test_run_testset_with_variables_mapping(self):
|
||||
testcase_file_path = os.path.join(
|
||||
@@ -129,9 +129,9 @@ class TestRunner(ApiServerUnittest):
|
||||
variables_mapping = {
|
||||
"app_version": '2.9.7'
|
||||
}
|
||||
result = HttpRunner(testcase_file_path).run(variables_mapping)
|
||||
self.assertTrue(result.success)
|
||||
self.assertIn("token", result.output)
|
||||
result = HttpRunner(testcase_file_path).run(mapping=variables_mapping)
|
||||
self.assertTrue(result["success"])
|
||||
self.assertIn("token", result["output"])
|
||||
|
||||
def test_run_testcase_with_empty_header(self):
|
||||
testcase_file_path = os.path.join(
|
||||
@@ -162,6 +162,6 @@ class TestRunner(ApiServerUnittest):
|
||||
testcase_file_path = os.path.join(
|
||||
os.getcwd(), 'tests/data/demo_parameters.yml')
|
||||
result = HttpRunner(testcase_file_path).run()
|
||||
self.assertTrue(result.success)
|
||||
self.assertIn("token", result.output)
|
||||
self.assertEqual(result.stat.total, 6)
|
||||
self.assertTrue(result["success"])
|
||||
self.assertIn("token", result["output"])
|
||||
self.assertEqual(result["stat"]["testsRun"], 6)
|
||||
|
||||
Reference in New Issue
Block a user