Commit 87b8feb6 authored by qianyanyan's avatar qianyanyan

auto_framework

parents
Pipeline #70 canceled with stages
znfz_autotest
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 " project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/znfz_autotest.iml" filepath="$PROJECT_DIR$/.idea/znfz_autotest.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c46002cb-eb9f-460f-aaf0-13a229cc306b" name="默认的" comment="" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="CoverageDataManager">
<SUITE FILE_PATH="coverage/znfz_test1$conn_database.coverage" NAME="conn_database Coverage Results" MODIFIED="1591167231664" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/baseuse" />
<SUITE FILE_PATH="coverage/znfz_test1$py_test_for_test_login_test_login2.coverage" NAME="py.test for test_login.test_login2 Coverage Results" MODIFIED="1590980284414" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test_cases" />
<SUITE FILE_PATH="coverage/znfz_test1$browser_engine.coverage" NAME="browser_engine Coverage Results" MODIFIED="1590980316052" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/baseuse" />
<SUITE FILE_PATH="coverage/znfz_test1$check_zcjd.coverage" NAME="check_zcjd Coverage Results" MODIFIED="1591067732344" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/baseuse" />
<SUITE FILE_PATH="coverage/znfz_test1$logger.coverage" NAME="logger Coverage Results" MODIFIED="1590914186990" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/baseuse" />
<SUITE FILE_PATH="coverage/znfz_test1$py_test_for_test_login_test_login.coverage" NAME="py.test for test_login.test_login Coverage Results" MODIFIED="1591005074309" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test_cases" />
<SUITE FILE_PATH="coverage/znfz_test1$py_test_in_test_main_py.coverage" NAME="py.test in test_main.py Coverage Results" MODIFIED="1590914193088" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test_cases" />
<SUITE FILE_PATH="coverage/znfz_test1$readConfig.coverage" NAME="readConfig Coverage Results" MODIFIED="1590733890623" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/framework" />
<SUITE FILE_PATH="coverage/znfz_test1$browser_engine__1_.coverage" NAME="browser_engine (1) Coverage Results" MODIFIED="1590891001278" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/baseuse" />
<SUITE FILE_PATH="coverage/znfz_test1$py_test_in_test_login_py.coverage" NAME="py.test in test_login.py Coverage Results" MODIFIED="1591769926658" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test_cases" />
<SUITE FILE_PATH="coverage/znfz_test1$check_gsjd.coverage" NAME="check_gsjd Coverage Results" MODIFIED="1591087200269" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/baseuse" />
<SUITE FILE_PATH="coverage/znfz_test1$py_test_for_test_login_test_login1.coverage" NAME="py.test for test_login.test_login1 Coverage Results" MODIFIED="1590892783620" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/test_cases" />
</component>
<component name="FavoritesManager">
<favorites_list name="znfz_test1" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="test_login.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test_cases/test_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1140">
<caret line="62" column="0" lean-forward="false" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="browser_engine.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/basepage/browser_engine.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="19" column="68" lean-forward="false" selection-start-line="19" selection-start-column="68" selection-end-line="19" selection-end-column="68" />
<folding>
<element signature="e#23#53#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="test_main.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test_cases/test_main.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171">
<caret line="9" column="18" lean-forward="false" selection-start-line="9" selection-start-column="18" selection-end-line="9" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="check_gsjd.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/basepage/check_gsjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="17" column="25" lean-forward="false" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="pytest.ini" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test_cases/pytest.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="76">
<caret line="4" column="15" lean-forward="false" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="test_gsjd.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/test_cases/test_gsjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="17" column="16" lean-forward="false" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>open_browser</find>
<find>caseid</find>
</findStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/test_cases/browser_engine.py" />
<option value="$PROJECT_DIR$/framework/readConfig.py" />
<option value="$PROJECT_DIR$/framework/browser_engine.py" />
<option value="$PROJECT_DIR$/test_cases/py.ini" />
<option value="$PROJECT_DIR$/baseuse/logger.py" />
<option value="$PROJECT_DIR$/baseuse/check_zcjd.py" />
<option value="$PROJECT_DIR$/baseuse/read_config.py" />
<option value="$PROJECT_DIR$/baseuse/end_database.py" />
<option value="$PROJECT_DIR$/config/config.ini" />
<option value="$PROJECT_DIR$/baseuse/conn_database.py" />
<option value="$PROJECT_DIR$/baseuse/browser_engine.py" />
<option value="$PROJECT_DIR$/test_cases/pytest.ini" />
<option value="$PROJECT_DIR$/baseuse/check_gsjd.py" />
<option value="$PROJECT_DIR$/test_cases/test_gsjd.py" />
<option value="$PROJECT_DIR$/test_cases/test_login.py" />
<option value="$PROJECT_DIR$/test_cases/test_main.py" />
<option value="$PROJECT_DIR$/basepage/browser_engine.py" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-7" />
<option name="width" value="1380" />
<option name="height" value="735" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
<manualOrder />
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="znfz_autotest" type="b2602c69:ProjectViewProjectNode" />
<item name="znfz_autotest" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="znfz_autotest" type="b2602c69:ProjectViewProjectNode" />
<item name="znfz_autotest" type="462c0819:PsiDirectoryNode" />
<item name="basepage" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="znfz_autotest" type="b2602c69:ProjectViewProjectNode" />
<item name="znfz_autotest" type="462c0819:PsiDirectoryNode" />
<item name="test_cases" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="znfz_autotest" type="b2602c69:ProjectViewProjectNode" />
<item name="外部库" type="cb654da1:ExternalLibrariesNode" />
</path>
<path>
<item name="znfz_autotest" type="b2602c69:ProjectViewProjectNode" />
<item name="外部库" type="cb654da1:ExternalLibrariesNode" />
<item name="&lt; Python 3.6 &gt;" type="70bed36:NamedLibraryElementNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="settings.editor.selected.configurable" value="sshConsole" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Python tests.py.test in test_login.py">
<configuration default="true" type="DjangoTestsConfigurationType" factoryName="Django tests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="TARGET" value="" />
<option name="SETTINGS_FILE" value="" />
<option name="CUSTOM_SETTINGS" value="false" />
<option name="USE_OPTIONS" value="false" />
<option name="OPTIONS" value="" />
</configuration>
<configuration default="true" type="PyBehaveRunConfigurationType" factoryName="Behave">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="ADDITIONAL_ARGS" value="" />
</configuration>
<configuration default="true" type="PyLettuceRunConfigurationType" factoryName="Lettuce">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="ADDITIONAL_ARGS" value="" />
</configuration>
<configuration name="check_gsjd" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/baseuse" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/baseuse/check_gsjd.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
</configuration>
<configuration name="check_zcjd" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/baseuse" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/baseuse/check_zcjd.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
</configuration>
<configuration name="conn_database" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/baseuse" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/baseuse/conn_database.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
</configuration>
<configuration default="true" type="Tox" factoryName="Tox">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<module name="znfz_test1" />
</configuration>
<configuration default="true" type="tests" factoryName="Twisted Trial">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
<configuration default="true" type="tests" factoryName="Unittests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
<configuration default="true" type="tests" factoryName="Doctests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="SCRIPT_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="FOLDER_NAME" value="" />
<option name="TEST_TYPE" value="TEST_SCRIPT" />
<option name="PATTERN" value="" />
<option name="USE_PATTERN" value="false" />
</configuration>
<configuration default="true" type="tests" factoryName="Nosetests">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_regexPattern" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
<configuration name="py.test for test_login.test_login" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/test_cases" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;test_login.test_login&quot;" />
<option name="_new_targetType" value="&quot;PYTHON&quot;" />
</configuration>
<configuration name="py.test in test_login.py" type="tests" factoryName="py.test" temporary="true" nameIsGenerated="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs />
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/test_cases" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="znfz_test1" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" runner="coverage.py" />
<option name="_new_keywords" value="&quot;&quot;" />
<option name="_new_additionalArguments" value="&quot;&quot;" />
<option name="_new_target" value="&quot;$PROJECT_DIR$/test_cases/test_login.py&quot;" />
<option name="_new_targetType" value="&quot;PATH&quot;" />
</configuration>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="Python tests.py.test in test_login.py" />
<item index="1" class="java.lang.String" itemvalue="Python tests.py.test for test_login.test_login" />
<item index="2" class="java.lang.String" itemvalue="Python.check_gsjd" />
<item index="3" class="java.lang.String" itemvalue="Python.check_zcjd" />
<item index="4" class="java.lang.String" itemvalue="Python.conn_database" />
</list>
<recent_temporary>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="Python tests.py.test in test_login.py" />
<item index="1" class="java.lang.String" itemvalue="Python.conn_database" />
<item index="2" class="java.lang.String" itemvalue="Python.check_gsjd" />
<item index="3" class="java.lang.String" itemvalue="Python.check_zcjd" />
<item index="4" class="java.lang.String" itemvalue="Python tests.py.test for test_login.test_login" />
</list>
</recent_temporary>
</component>
<component name="ShelveChangesManager" show_recycled="false">
<option name="remove_strategy" value="false" />
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="c46002cb-eb9f-460f-aaf0-13a229cc306b" name="默认的" comment="" />
<created>1590649671986</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1590649671986</updated>
</task>
<servers />
</component>
<component name="TestHistory">
<history-entry file="py_test_for_test_login_test_login - 2020.06.01 at 10h 35m 20s.xml">
<configuration name="py.test for test_login.test_login" configurationId="tests" />
</history-entry>
<history-entry file="py_test_for_test_login_test_login - 2020.06.01 at 10h 39m 18s.xml">
<configuration name="py.test for test_login.test_login" configurationId="tests" />
</history-entry>
<history-entry file="py_test_for_test_login_test_login - 2020.06.01 at 17h 52m 04s.xml">
<configuration name="py.test for test_login.test_login" configurationId="tests" />
</history-entry>
<history-entry file="py_test_for_test_login_test_login2 - 2020.06.01 at 10h 58m 05s.xml">
<configuration name="py.test for test_login.test_login2" configurationId="tests" />
</history-entry>
<history-entry file="py_test_in_test_login_py - 2020.06.01 at 10h 55m 53s.xml">
<configuration name="py.test in test_login.py" configurationId="tests" />
</history-entry>
<history-entry file="py_test_in_test_login_py - 2020.06.01 at 18h 41m 36s.xml">
<configuration name="py.test in test_login.py" configurationId="tests" />
</history-entry>
<history-entry file="py_test_in_test_login_py - 2020.06.01 at 18h 47m 13s.xml">
<configuration name="py.test in test_login.py" configurationId="tests" />
</history-entry>
<history-entry file="py_test_in_test_login_py - 2020.06.02 at 10h 11m 47s.xml">
<configuration name="py.test in test_login.py" configurationId="tests" />
</history-entry>
<history-entry file="py_test_in_test_login_py - 2020.06.10 at 14h 15m 14s.xml">
<configuration name="py.test in test_login.py" configurationId="tests" />
</history-entry>
<history-entry file="py_test_in_test_login_py - 2020.06.10 at 14h 19m 46s.xml">
<configuration name="py.test in test_login.py" configurationId="tests" />
</history-entry>
</component>
<component name="TodoView">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
<is-autoscroll-to-source value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<layout>
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32843137" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="调试" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32242227" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="运行" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.35947713" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2647504" sideWeight="0.4914842" order="0" side_tool="false" content_ui="combo" />
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="SciView" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962178" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24962178" sideWeight="0.50851583" order="1" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="找到" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="2" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/basepage/logger.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/config.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="15" column="9" lean-forward="true" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/conn_database.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/pytest.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38">
<caret line="2" column="14" lean-forward="false" selection-start-line="2" selection-start-column="14" selection-end-line="2" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/browser_engine.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="19" column="59" lean-forward="false" selection-start-line="19" selection-start-column="36" selection-end-line="19" selection-end-column="86" />
<folding>
<element signature="e#23#53#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/test_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="19">
<caret line="3" column="13" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="48" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/browser_engine.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1083">
<caret line="61" column="75" lean-forward="true" selection-start-line="61" selection-start-column="8" selection-end-line="61" selection-end-column="79" />
<folding>
<element signature="e#23#53#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/read_config.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="399">
<caret line="23" column="49" lean-forward="true" selection-start-line="23" selection-start-column="49" selection-end-line="23" selection-end-column="49" />
<folding>
<element signature="e#0#9#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_gsjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="22" column="0" lean-forward="true" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_zcjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="18" column="13" lean-forward="false" selection-start-line="18" selection-start-column="8" selection-end-line="19" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/logger.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="152">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/config.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="15" column="9" lean-forward="true" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/pytest.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="38">
<caret line="2" column="14" lean-forward="false" selection-start-line="2" selection-start-column="14" selection-end-line="2" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/conn_database.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/test_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="513">
<caret line="29" column="58" lean-forward="false" selection-start-line="29" selection-start-column="58" selection-end-line="29" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/config.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="52" lean-forward="false" selection-start-line="0" selection-start-column="52" selection-end-line="0" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/framework/browser_engine.py" />
<entry file="file://$PROJECT_DIR$/framework/readConfig.py" />
<entry file="file://$PROJECT_DIR$/test_cases/test_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/framework/readConfig.py" />
<entry file="file://$PROJECT_DIR$/config/config.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="52" lean-forward="false" selection-start-line="0" selection-start-column="52" selection-end-line="0" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/framework/browser_engine.py" />
<entry file="file://$PROJECT_DIR$/test_cases/test_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/framework/browser_engine.py" />
<entry file="file://$PROJECT_DIR$/config/config.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171">
<caret line="9" column="9" lean-forward="false" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/config.py" />
<entry file="file://$PROJECT_DIR$/test_cases/browser_engine.py" />
<entry file="file://$PROJECT_DIR$/../test01/module.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/framework/readConfig.py" />
<entry file="file://$PROJECT_DIR$/framework/browser_engine.py" />
<entry file="file://$PROJECT_DIR$/framework/read_Config.py" />
<entry file="file://$PROJECT_DIR$/framework/__init__.py" />
<entry file="file://$PROJECT_DIR$/test_cases/py.ini" />
<entry file="file://$PROJECT_DIR$/baseuse/end_database.py" />
<entry file="file://$PROJECT_DIR$/config/config.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="15" column="9" lean-forward="false" selection-start-line="15" selection-start-column="9" selection-end-line="15" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_results.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_transaction_processing.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/logger.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="190">
<caret line="10" column="0" lean-forward="false" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/read_config.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="23" column="0" lean-forward="false" selection-start-line="23" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
<folding>
<element signature="e#0#9#0" expanded="false" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/conn_database.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="15" column="23" lean-forward="true" selection-start-line="15" selection-start-column="23" selection-end-line="15" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_zcjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="18" column="13" lean-forward="false" selection-start-line="18" selection-start-column="8" selection-end-line="19" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_papers.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_base_facts.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/pytest.ini">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="76">
<caret line="4" column="15" lean-forward="false" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/test_gsjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="17" column="16" lean-forward="false" selection-start-line="17" selection-start-column="16" selection-end-line="17" selection-end-column="16" />
<folding>
<element signature="e#0#13#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/test_login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1140">
<caret line="62" column="0" lean-forward="false" selection-start-line="62" selection-start-column="0" selection-end-line="62" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.pytest_cache/README.md">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/test_cases/test_main.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="171">
<caret line="9" column="18" lean-forward="false" selection-start-line="9" selection-start-column="18" selection-end-line="9" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.pytest_cache/CACHEDIR.TAG">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/check_gsjd.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="323">
<caret line="17" column="25" lean-forward="false" selection-start-line="17" selection-start-column="25" selection-end-line="17" selection-end-column="25" />
<folding>
<element signature="e#0#10#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/basepage/browser_engine.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="266">
<caret line="19" column="68" lean-forward="false" selection-start-line="19" selection-start-column="68" selection-end-line="19" selection-end-column="68" />
<folding>
<element signature="e#23#53#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.6 " jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PackageRequirementsSettings">
<option name="requirementsPath" value="" />
</component>
<component name="TestRunnerService">
<option name="projectConfiguration" value="py.test" />
<option name="PROJECT_TEST_RUNNER" value="py.test" />
</component>
</module>
\ No newline at end of file
# -*- coding:utf-8 -*-
from selenium import webdriver
from basepage.read_config import ReadConfig
import time
import string
from basepage.logger import Logger
logger = Logger(logger="browser_engine").getlog()
class BrowserEngine(object):
def open_browser(self):
conf = ReadConfig()
browser = conf.get_browserType('browserName')
url = conf.get_testUrl('URL')
logger.info("browserName: %s" % browser)
#driver = webdriver.Chrome(r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
driver = webdriver.Chrome(r"D:\mywork\autotest\znfz_autotest\driver\chromedriver.exe")
driver.get(url)
logger.info("Open url: %s" % url)
time.sleep(3)
driver.maximize_window()
logger.info("Maximize the current window.")
driver.implicitly_wait(10)
logger.info("Set implicitly wait 10 seconds.")
return driver
def login_znfz(self):
conf = ReadConfig()
username = conf.get_userInfo('username')
password = conf.get_userInfo('password')
url = conf.get_testUrl('URL')
print(username, password, url)
logger.info("username: %s" %username)
#logger.info(string.Formatter("username: %s, password: %s, open url: %s", username, password, url))
#logger.info("password :%s" % password)
#logger.info("Open url: %s" % url)
browser = BrowserEngine()
driver = browser.open_browser()
tags = driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[1]/div/div/span/span/span')
logger.info("tags.text:%s" % tags.text)
#print(tags.text)
tags.click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/span[1]').click()
tags2 = driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/ul/li[3]/span[2]/span')
logger.info("tags2.text:%s" % tags2.text)
#print(tags2.text)
tags2.click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(username)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[4]/div/div/span/button').click()
return driver
'''
if __name__ == '__main__':
cls = BrowserEngine()
test = cls.open_browser()
time.sleep(3)
test.quit()
'''
\ No newline at end of file
import sys
import time
from basepage.browser_engine import BrowserEngine
from basepage.logger import Logger
from basepage.read_config import ReadConfig
logger = Logger(logger="check_gsjd").getlog()
class CheckGsjd(object):
#选择审查起诉
def choose_gsjd(self):
browser = BrowserEngine()
driver = browser.login_znfz()
#tags = driver.find_element_by_xpath('/html/body/div[1]/div/section/aside/div/ul/li[3]/a/span')
tags = driver.find_element_by_xpath('/html/body/div[1]/div/section/aside/div/ul/li[3]')
#print(tags.text)
logger.info("tags.text:%s" % tags.text)
tags.click()
time.sleep(10)
return driver
#选择审查起诉案件
def choose_gsjd_case(self, driver):
conf = ReadConfig()
caseId = conf.get_caseId('caseId')
logger.info("the caseId : %s" % caseId)
# driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[1]/div[3]/input').send_keys(caseId)
driver.find_element_by_xpath('//*[@id="ajmc"]').send_keys(caseId)
#点击按钮
driver.find_element_by_xpath( '/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[2]/div/button[2]').click()
time.sleep(5)
#点击办理
tags = driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/table/tbody/tr/td[7]/p/a')
#print(tags.text)
logger.info("tags.text:%s" % tags.text)
tags.click()
#driver.find_element_by_tag_name(tags.text).click()
if __name__ == '__main__':
test = CheckGsjd()
driver = test.choose_gsjd()
test.choose_gsjd_case(driver)
'''
conf = ReadConfig()
caseId = conf.get_caseId('caseId')
logger.info("the caseId : %s" % caseId)
# driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[1]/div[3]/input').send_keys(caseId)
driver.find_element_by_xpath('//*[@id="ajmc"]').send_keys(caseId)
# 点击按钮
driver.find_element_by_xpath(
'/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[1]/form/div[2]/div/button[2]').click()
# 点击办理
#tags = driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/table/tbody/tr/td[7]/p/a')
time.sleep(5)
tags = driver.find_element_by_xpath('/html/body/div[1]/div/section/section/main/div/div[2]/div/div/div[2]/div[2]/div/div/div/div/div/div[2]/table/tbody/tr/td[3]/p/span')
print(tags.text)
tags.click()
#links = driver.find_element_by_tag_name("办理")
#print(links.text)
#tags.click()
#print (tags.text)
#tags.click()
'''
\ No newline at end of file
import sys
import time
from basepage.browser_engine import BrowserEngine
from basepage.logger import Logger
logger = Logger(logger="check_zcjd").getlog()
class CheckZcjd:
#选择审查逮捕
def choose_zcjd(self):
browser = BrowserEngine()
driver = browser.login_znfz()
tags = driver.find_element_by_xpath('/html/body/div[1]/div/section/aside/div/ul/li[2]/a/span')
#print(tags.text)
logger.info("tags.text;%s" % tags.text)
tags.click()
time.sleep(10)
if __name__ == '__main__':
test = CheckZcjd()
test.choose_zcjd()
\ No newline at end of file
import psycopg2
import json
conn = psycopg2.connect(database = 'cmrobot',user = 'cmrobot', password = 'cmrobot',host = '192.168.2.31',port = '5432')
curs = conn.cursor()
sql = "select jsondata from znfz_wsst_nlp where bmsah = '瓯检起诉受[2020]33030401160号'"
curs.execute(sql)
data = curs.fetchall()
print("python原始数据:",data)
print(type(data))
data_len = len(data)
print(data_len,data[0])
data_len_1 = len(data[0][0])
print(data_len_1,data[0][0]['zr'])
#print(data_len_1,data[0][0])
file_handle = open('D:/mywork/f11.txt',mode='w')
file_handle.write(str(data[0][0]))
file_handle.close()
#data2=json.loads(data)
#print(type(data2))
json_str = json.dumps(data[0])
print("JSON 对象:", json_str)
print(type(json_str))
file_handle = open('D:/mywork/f2.txt',mode='w')
file_handle.write(str(json_str))
file_handle.close()
data1=json.loads(json_str)
print(data1)
print(type(data1))
file_handle = open('D:/mywork/f3.txt',mode='w')
file_handle.write(str(data1))
file_handle.close()
curs.close()
conn.close()
import os.path
import logging
import time
class Logger(object):
def __init__(self, logger):
self.logger = logging.getLogger(logger)
self.logger.setLevel(logging.DEBUG)
rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
log_path = os.path.dirname(os.path.abspath('.')) + '/logs/'
log_name = log_path + rq + '.log'
fh = logging.FileHandler(log_name)
fh.setLevel(logging.INFO)
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
self.logger.addHandler(fh)
self.logger.addHandler(ch)
def getlog(self):
return self.logger
\ No newline at end of file
import os
import configparser
from basepage.logger import Logger
'''
proDir = os.path.split(os.path.realpath(__file__))[0]
print(proDir)
configPath = os.path.join(proDir, "config.ini")
print(configPath)
'''
logger = Logger(logger='read_config').getlog()
#logger = logging.getLogger('read_config')
proDir = os.path.dirname(os.path.abspath('.'))
configPath = os.path.dirname(os.path.abspath('.')) +r'\config\config.ini'
logger.info("the configPath: %s" % configPath)
class ReadConfig:
def __init__(self):
self.cf = configparser.ConfigParser()
self.cf.read(configPath,encoding="utf-8-sig")
def get_browserType(self, param):
value = self.cf.get("browserType", param)
logger.info("the browserType : %s" % value)
return value
def get_testUrl(self, param):
value = self.cf.get("testUrl", param)
logger.info("the testUrl : %s" % value)
return value
def get_userInfo(self, param):
value = self.cf.get("userInfo", param)
logger.info("the userInfo : %s" % value)
return value
def get_caseId(self, param):
value = self.cf.get("gsjdCase", param)
logger.info("the gsjdCase : %s" % value)
return value
'''
if __name__ == '__main__':
test = ReadConfig()
browser = test.get_browserType('browserName')
username = test.get_userInfo('username')
password = test.get_userInfo('password')
print(browser,username,password)
'''
\ No newline at end of file
# this is config file, only store browser type and server URL
[browserType]
#browserName = Firefox
browserName = Chrome
#browserName = IE
[testUrl]
#URL = https://www.baidu.com
URL = http://192.168.2.31/cm
[userInfo]
username=周朝阳
password=qazwsxedc
[dataBase]
ip=192.168.2.31
port=5432
user=cmrobot
pasword=cmrobot
database=cmrobot
#起诉案件
[gsjdCase]
#考虑循环
caseId=33030401160
2020-06-10 15:22:08,642 - read_config - INFO - the configPath: D:\mywork\autotest\znfz_autotest\config\config.ini
2020-06-10 15:22:08,664 - read_config - INFO - the userInfo : 周朝阳
2020-06-10 15:22:08,664 - read_config - INFO - the userInfo : qazwsxedc
2020-06-10 15:22:08,664 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-10 15:22:08,665 - browser_engine - INFO - username: 周朝阳
2020-06-10 15:22:08,666 - read_config - INFO - the browserType : Chrome
2020-06-10 15:22:08,666 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-10 15:22:08,667 - browser_engine - INFO - browserName: Chrome
2020-06-10 15:22:44,094 - browser_engine - INFO - Open url: http://192.168.2.31/cm
2020-06-10 15:22:51,233 - browser_engine - INFO - Maximize the current window.
2020-06-10 15:22:51,235 - browser_engine - INFO - Set implicitly wait 10 seconds.
2020-06-10 15:22:51,280 - browser_engine - INFO - tags.text:请选择所属部门
2020-06-10 15:22:52,624 - browser_engine - INFO - tags2.text:瓯海区院
2020-06-10 15:23:01,896 - check_gsjd - INFO - tags.text:审查起诉
2020-06-10 15:23:12,050 - read_config - INFO - the gsjdCase : 33030401160
2020-06-10 15:23:12,050 - check_gsjd - INFO - the caseId : 33030401160
2020-06-10 15:23:17,670 - check_gsjd - INFO - tags.text:办理
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
/* do not increase min-width as some may use split screens */
min-width: 800px;
color: #999;
}
h1 {
font-size: 24px;
color: black;
}
h2 {
font-size: 16px;
color: black;
}
p {
color: black;
}
a {
color: #999;
}
table {
border-collapse: collapse;
}
/******************************
* SUMMARY INFORMATION
******************************/
#environment td {
padding: 5px;
border: 1px solid #E6E6E6;
}
#environment tr:nth-child(odd) {
background-color: #f6f6f6;
}
/******************************
* TEST RESULT COLORS
******************************/
span.passed, .passed .col-result {
color: green;
}
span.skipped, span.xfailed, span.rerun, .skipped .col-result, .xfailed .col-result, .rerun .col-result {
color: orange;
}
span.error, span.failed, span.xpassed, .error .col-result, .failed .col-result, .xpassed .col-result {
color: red;
}
/******************************
* RESULTS TABLE
*
* 1. Table Layout
* 2. Extra
* 3. Sorting items
*
******************************/
/*------------------
* 1. Table Layout
*------------------*/
#results-table {
border: 1px solid #e6e6e6;
color: #999;
font-size: 12px;
width: 100%
}
#results-table th, #results-table td {
padding: 5px;
border: 1px solid #E6E6E6;
text-align: left
}
#results-table th {
font-weight: bold
}
/*------------------
* 2. Extra
*------------------*/
.log:only-child {
height: inherit
}
.log {
background-color: #e6e6e6;
border: 1px solid #e6e6e6;
color: black;
display: block;
font-family: "Courier New", Courier, monospace;
height: 230px;
overflow-y: scroll;
padding: 5px;
white-space: pre-wrap
}
div.image {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin-left: 5px;
overflow: hidden;
width: 320px
}
div.image img {
width: 320px
}
div.video {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin-left: 5px;
overflow: hidden;
width: 320px
}
div.video video {
overflow: hidden;
width: 320px;
height: 240px;
}
.collapsed {
display: none;
}
.expander::after {
content: " (show details)";
color: #BBB;
font-style: italic;
cursor: pointer;
}
.collapser::after {
content: " (hide details)";
color: #BBB;
font-style: italic;
cursor: pointer;
}
/*------------------
* 3. Sorting items
*------------------*/
.sortable {
cursor: pointer;
}
.sort-icon {
font-size: 0px;
float: left;
margin-right: 5px;
margin-top: 5px;
/*triangle*/
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
}
.inactive .sort-icon {
/*finish triangle*/
border-top: 8px solid #E6E6E6;
}
.asc.active .sort-icon {
/*finish triangle*/
border-bottom: 8px solid #999;
}
.desc.active .sort-icon {
/*finish triangle*/
border-top: 8px solid #999;
}
[pytest]
markers= case1
case2
case3
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Test Report</title>
<link href="assets/style.css" rel="stylesheet" type="text/css"/></head>
<body onLoad="init()">
<script>/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
function toArray(iter) {
if (iter === null) {
return null;
}
return Array.prototype.slice.call(iter);
}
function find(selector, elem) {
if (!elem) {
elem = document;
}
return elem.querySelector(selector);
}
function find_all(selector, elem) {
if (!elem) {
elem = document;
}
return toArray(elem.querySelectorAll(selector));
}
function sort_column(elem) {
toggle_sort_states(elem);
var colIndex = toArray(elem.parentNode.childNodes).indexOf(elem);
var key;
if (elem.classList.contains('numeric')) {
key = key_num;
} else if (elem.classList.contains('result')) {
key = key_result;
} else {
key = key_alpha;
}
sort_table(elem, key(colIndex));
}
function show_all_extras() {
find_all('.col-result').forEach(show_extras);
}
function hide_all_extras() {
find_all('.col-result').forEach(hide_extras);
}
function show_extras(colresult_elem) {
var extras = colresult_elem.parentNode.nextElementSibling;
var expandcollapse = colresult_elem.firstElementChild;
extras.classList.remove("collapsed");
expandcollapse.classList.remove("expander");
expandcollapse.classList.add("collapser");
}
function hide_extras(colresult_elem) {
var extras = colresult_elem.parentNode.nextElementSibling;
var expandcollapse = colresult_elem.firstElementChild;
extras.classList.add("collapsed");
expandcollapse.classList.remove("collapser");
expandcollapse.classList.add("expander");
}
function show_filters() {
var filter_items = document.getElementsByClassName('filter');
for (var i = 0; i < filter_items.length; i++)
filter_items[i].hidden = false;
}
function add_collapse() {
// Add links for show/hide all
var resulttable = find('table#results-table');
var showhideall = document.createElement("p");
showhideall.innerHTML = '<a href="javascript:show_all_extras()">Show all details</a> / ' +
'<a href="javascript:hide_all_extras()">Hide all details</a>';
resulttable.parentElement.insertBefore(showhideall, resulttable);
// Add show/hide link to each result
find_all('.col-result').forEach(function(elem) {
var collapsed = get_query_parameter('collapsed') || 'Passed';
var extras = elem.parentNode.nextElementSibling;
var expandcollapse = document.createElement("span");
if (extras.classList.contains("collapsed")) {
expandcollapse.classList.add("expander")
} else if (collapsed.includes(elem.innerHTML)) {
extras.classList.add("collapsed");
expandcollapse.classList.add("expander");
} else {
expandcollapse.classList.add("collapser");
}
elem.appendChild(expandcollapse);
elem.addEventListener("click", function(event) {
if (event.currentTarget.parentNode.nextElementSibling.classList.contains("collapsed")) {
show_extras(event.currentTarget);
} else {
hide_extras(event.currentTarget);
}
});
})
}
function get_query_parameter(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
function init () {
reset_sort_headers();
add_collapse();
show_filters();
sort_column(find('.initial-sort'));
find_all('.sortable').forEach(function(elem) {
elem.addEventListener("click",
function(event) {
sort_column(elem);
}, false)
});
};
function sort_table(clicked, key_func) {
var rows = find_all('.results-table-row');
var reversed = !clicked.classList.contains('asc');
var sorted_rows = sort(rows, key_func, reversed);
/* Whole table is removed here because browsers acts much slower
* when appending existing elements.
*/
var thead = document.getElementById("results-table-head");
document.getElementById('results-table').remove();
var parent = document.createElement("table");
parent.id = "results-table";
parent.appendChild(thead);
sorted_rows.forEach(function(elem) {
parent.appendChild(elem);
});
document.getElementsByTagName("BODY")[0].appendChild(parent);
}
function sort(items, key_func, reversed) {
var sort_array = items.map(function(item, i) {
return [key_func(item), i];
});
sort_array.sort(function(a, b) {
var key_a = a[0];
var key_b = b[0];
if (key_a == key_b) return 0;
if (reversed) {
return (key_a < key_b ? 1 : -1);
} else {
return (key_a > key_b ? 1 : -1);
}
});
return sort_array.map(function(item) {
var index = item[1];
return items[index];
});
}
function key_alpha(col_index) {
return function(elem) {
return elem.childNodes[1].childNodes[col_index].firstChild.data.toLowerCase();
};
}
function key_num(col_index) {
return function(elem) {
return parseFloat(elem.childNodes[1].childNodes[col_index].firstChild.data);
};
}
function key_result(col_index) {
return function(elem) {
var strings = ['Error', 'Failed', 'Rerun', 'XFailed', 'XPassed',
'Skipped', 'Passed'];
return strings.indexOf(elem.childNodes[1].childNodes[col_index].firstChild.data);
};
}
function reset_sort_headers() {
find_all('.sort-icon').forEach(function(elem) {
elem.parentNode.removeChild(elem);
});
find_all('.sortable').forEach(function(elem) {
var icon = document.createElement("div");
icon.className = "sort-icon";
icon.textContent = "vvv";
elem.insertBefore(icon, elem.firstChild);
elem.classList.remove("desc", "active");
elem.classList.add("asc", "inactive");
});
}
function toggle_sort_states(elem) {
//if active, toggle between asc and desc
if (elem.classList.contains('active')) {
elem.classList.toggle('asc');
elem.classList.toggle('desc');
}
//if inactive, reset all other functions and add ascending active
if (elem.classList.contains('inactive')) {
reset_sort_headers();
elem.classList.remove('inactive');
elem.classList.add('active');
}
}
function is_all_rows_hidden(value) {
return value.hidden == false;
}
function filter_table(elem) {
var outcome_att = "data-test-result";
var outcome = elem.getAttribute(outcome_att);
class_outcome = outcome + " results-table-row";
var outcome_rows = document.getElementsByClassName(class_outcome);
for(var i = 0; i < outcome_rows.length; i++){
outcome_rows[i].hidden = !elem.checked;
}
var rows = find_all('.results-table-row').filter(is_all_rows_hidden);
var all_rows_hidden = rows.length == 0 ? true : false;
var not_found_message = document.getElementById("not-found-message");
not_found_message.hidden = !all_rows_hidden;
}
</script>
<h1>report.html</h1>
<p>Report generated on 02-Jun-2020 at 10:14:22 by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a> v2.1.1</p>
<h2>Environment</h2>
<table id="environment">
<tr>
<td>Packages</td>
<td>{"pluggy": "0.13.1", "py": "1.8.1", "pytest": "5.4.2"}</td></tr>
<tr>
<td>Platform</td>
<td>Windows-10-10.0.18362-SP0</td></tr>
<tr>
<td>Plugins</td>
<td>{"forked": "1.1.3", "html": "2.1.1", "metadata": "1.9.0", "rerunfailures": "9.0", "xdist": "1.32.0"}</td></tr>
<tr>
<td>Python</td>
<td>3.8.2</td></tr></table>
<h2>Summary</h2>
<p>6 tests ran in 68.69 seconds. </p>
<p class="filter" hidden="true">(Un)check the boxes to filter the results.</p><input checked="true" class="filter" data-test-result="passed" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="passed">4 passed</span>, <input checked="true" class="filter" data-test-result="skipped" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="skipped">0 skipped</span>, <input checked="true" class="filter" data-test-result="failed" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="failed">2 failed</span>, <input checked="true" class="filter" data-test-result="error" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="error">0 errors</span>, <input checked="true" class="filter" data-test-result="xfailed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="xfailed">0 expected failures</span>, <input checked="true" class="filter" data-test-result="xpassed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="xpassed">0 unexpected passes</span>, <input checked="true" class="filter" data-test-result="rerun" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="rerun">0 rerun</span>
<h2>Results</h2>
<table id="results-table">
<thead id="results-table-head">
<tr>
<th class="sortable result initial-sort" col="result">Result</th>
<th class="sortable" col="name">Test</th>
<th class="sortable numeric" col="duration">Duration</th>
<th>Links</th></tr>
<tr hidden="true" id="not-found-message">
<th colspan="4">No results found. Try to check the filters</th></tr></thead>
<tbody class="failed results-table-row">
<tr>
<td class="col-result">Failed</td>
<td class="col-name">test_login.py::test_login2</td>
<td class="col-duration">13.76</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log">@pytest.mark.case3<br/> def test_login2():<br/> browser = BrowserEngine()<br/>&gt; browser.login_znfz()<br/><br/>test_login.py:67: <br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br/>..\baseuse\browser_engine.py:46: in login_znfz<br/> driver = browser.open_browser()<br/>..\baseuse\browser_engine.py:25: in open_browser<br/> driver.maximize_window()<br/>d:\python\lib\site-packages\selenium\webdriver\remote\webdriver.py:737: in maximize_window<br/> self.execute(command, params)<br/>d:\python\lib\site-packages\selenium\webdriver\remote\webdriver.py:321: in execute<br/> self.error_handler.check_response(response)<br/>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ <br/><br/>self = &lt;selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x00000123BA5765E0&gt;<br/>response = {&#x27;sessionId&#x27;: &#x27;7cb322a945d0d22858e020ac61b82c59&#x27;, &#x27;status&#x27;: 13, &#x27;value&#x27;: {&#x27;message&#x27;: &#x27;unknown error: failed to change ...ver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.18362 x86_64)&#x27;}}<br/><br/> def check_response(self, response):<br/> &quot;&quot;&quot;<br/> Checks that a JSON response from the WebDriver does not have an error.<br/> <br/> :Args:<br/> - response - The JSON response from the WebDriver server as a dictionary<br/> object.<br/> <br/> :Raises: If the response contains an error message.<br/> &quot;&quot;&quot;<br/> status = response.get(&#x27;status&#x27;, None)<br/> if status is None or status == ErrorCode.SUCCESS:<br/> return<br/> value = None<br/> message = response.get(&quot;message&quot;, &quot;&quot;)<br/> screen = response.get(&quot;screen&quot;, &quot;&quot;)<br/> stacktrace = None<br/> if isinstance(status, int):<br/> value_json = response.get(&#x27;value&#x27;, None)<br/> if value_json and isinstance(value_json, basestring):<br/> import json<br/> try:<br/> value = json.loads(value_json)<br/> if len(value.keys()) == 1:<br/> value = value[&#x27;value&#x27;]<br/> status = value.get(&#x27;error&#x27;, None)<br/> if status is None:<br/> status = value[&quot;status&quot;]<br/> message = value[&quot;value&quot;]<br/> if not isinstance(message, basestring):<br/> value = message<br/> message = message.get(&#x27;message&#x27;)<br/> else:<br/> message = value.get(&#x27;message&#x27;, None)<br/> except ValueError:<br/> pass<br/> <br/> exception_class = ErrorInResponseException<br/> if status in ErrorCode.NO_SUCH_ELEMENT:<br/> exception_class = NoSuchElementException<br/> elif status in ErrorCode.NO_SUCH_FRAME:<br/> exception_class = NoSuchFrameException<br/> elif status in ErrorCode.NO_SUCH_WINDOW:<br/> exception_class = NoSuchWindowException<br/> elif status in ErrorCode.STALE_ELEMENT_REFERENCE:<br/> exception_class = StaleElementReferenceException<br/> elif status in ErrorCode.ELEMENT_NOT_VISIBLE:<br/> exception_class = ElementNotVisibleException<br/> elif status in ErrorCode.INVALID_ELEMENT_STATE:<br/> exception_class = InvalidElementStateException<br/> elif status in ErrorCode.INVALID_SELECTOR \<br/> or status in ErrorCode.INVALID_XPATH_SELECTOR \<br/> or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:<br/> exception_class = InvalidSelectorException<br/> elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:<br/> exception_class = ElementNotSelectableException<br/> elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:<br/> exception_class = ElementNotInteractableException<br/> elif status in ErrorCode.INVALID_COOKIE_DOMAIN:<br/> exception_class = InvalidCookieDomainException<br/> elif status in ErrorCode.UNABLE_TO_SET_COOKIE:<br/> exception_class = UnableToSetCookieException<br/> elif status in ErrorCode.TIMEOUT:<br/> exception_class = TimeoutException<br/> elif status in ErrorCode.SCRIPT_TIMEOUT:<br/> exception_class = TimeoutException<br/> elif status in ErrorCode.UNKNOWN_ERROR:<br/> exception_class = WebDriverException<br/> elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:<br/> exception_class = UnexpectedAlertPresentException<br/> elif status in ErrorCode.NO_ALERT_OPEN:<br/> exception_class = NoAlertPresentException<br/> elif status in ErrorCode.IME_NOT_AVAILABLE:<br/> exception_class = ImeNotAvailableException<br/> elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:<br/> exception_class = ImeActivationFailedException<br/> elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:<br/> exception_class = MoveTargetOutOfBoundsException<br/> elif status in ErrorCode.JAVASCRIPT_ERROR:<br/> exception_class = JavascriptException<br/> elif status in ErrorCode.SESSION_NOT_CREATED:<br/> exception_class = SessionNotCreatedException<br/> elif status in ErrorCode.INVALID_ARGUMENT:<br/> exception_class = InvalidArgumentException<br/> elif status in ErrorCode.NO_SUCH_COOKIE:<br/> exception_class = NoSuchCookieException<br/> elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:<br/> exception_class = ScreenshotException<br/> elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:<br/> exception_class = ElementClickInterceptedException<br/> elif status in ErrorCode.INSECURE_CERTIFICATE:<br/> exception_class = InsecureCertificateException<br/> elif status in ErrorCode.INVALID_COORDINATES:<br/> exception_class = InvalidCoordinatesException<br/> elif status in ErrorCode.INVALID_SESSION_ID:<br/> exception_class = InvalidSessionIdException<br/> elif status in ErrorCode.UNKNOWN_METHOD:<br/> exception_class = UnknownMethodException<br/> else:<br/> exception_class = WebDriverException<br/> if value == &#x27;&#x27; or value is None:<br/> value = response[&#x27;value&#x27;]<br/> if isinstance(value, basestring):<br/> if exception_class == ErrorInResponseException:<br/> raise exception_class(response, value)<br/> raise exception_class(value)<br/> if message == &quot;&quot; and &#x27;message&#x27; in value:<br/> message = value[&#x27;message&#x27;]<br/> <br/> screen = None<br/> if &#x27;screen&#x27; in value:<br/> screen = value[&#x27;screen&#x27;]<br/> <br/> stacktrace = None<br/> if &#x27;stackTrace&#x27; in value and value[&#x27;stackTrace&#x27;]:<br/> stacktrace = []<br/> try:<br/> for frame in value[&#x27;stackTrace&#x27;]:<br/> line = self._value_or_default(frame, &#x27;lineNumber&#x27;, &#x27;&#x27;)<br/> file = self._value_or_default(frame, &#x27;fileName&#x27;, &#x27;&lt;anonymous&gt;&#x27;)<br/> if line:<br/> file = &quot;%s:%s&quot; % (file, line)<br/> meth = self._value_or_default(frame, &#x27;methodName&#x27;, &#x27;&lt;anonymous&gt;&#x27;)<br/> if &#x27;className&#x27; in frame:<br/> meth = &quot;%s.%s&quot; % (frame[&#x27;className&#x27;], meth)<br/> msg = &quot; at %s (%s)&quot;<br/> msg = msg % (meth, file)<br/> stacktrace.append(msg)<br/> except TypeError:<br/> pass<br/> if exception_class == ErrorInResponseException:<br/> raise exception_class(response, message)<br/> elif exception_class == UnexpectedAlertPresentException:<br/> alert_text = None<br/> if &#x27;data&#x27; in value:<br/> alert_text = value[&#x27;data&#x27;].get(&#x27;text&#x27;)<br/> elif &#x27;alert&#x27; in value:<br/> alert_text = value[&#x27;alert&#x27;].get(&#x27;text&#x27;)<br/> raise exception_class(message, screen, stacktrace, alert_text)<br/>&gt; raise exception_class(message, screen, stacktrace)<br/><span class="error">E selenium.common.exceptions.WebDriverException: Message: unknown error: failed to change window state to maximized, current state is normal</span><br/><span class="error">E (Session info: chrome=83.0.4103.61)</span><br/><span class="error">E (Driver info: chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),platform=Windows NT 10.0.18362 x86_64)</span><br/><br/>d:\python\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: WebDriverException<br/> -----------------------------Captured stdout setup------------------------------ <br/>setup_function:每个用例开始前都会执行
<br/> ------------------------------Captured stdout call------------------------------ <br/>周朝阳 qazwsxedc http://192.168.2.31/cm
<br/> ------------------------------Captured stderr call------------------------------ <br/>2020-06-02 10:14:08,258 - read_config - INFO - the userInfo : 周朝阳
2020-06-02 10:14:08,259 - read_config - INFO - the userInfo : qazwsxedc
2020-06-02 10:14:08,259 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:14:08,259 - browser_engine - INFO - username: 周朝阳
2020-06-02 10:14:08,260 - read_config - INFO - the browserType : Chrome
2020-06-02 10:14:08,260 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:14:08,260 - browser_engine - INFO - browserName: Chrome
2020-06-02 10:14:14,763 - browser_engine - INFO - Open url: http://192.168.2.31/cm
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO  read_config:read_config.py:35 the userInfo : 周朝阳
INFO  read_config:read_config.py:35 the userInfo : qazwsxedc
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:39 username: 周朝阳
INFO  read_config:read_config.py:25 the browserType : Chrome
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:17 browserName: Chrome
INFO  browser_engine:browser_engine.py:23 Open url: http://192.168.2.31/cm<br/></div></td></tr></tbody>
<tbody class="failed results-table-row">
<tr>
<td class="col-result">Failed</td>
<td class="col-name">test_login.py::test_file2_answer2</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log">@pytest.mark.case1<br/> def test_file2_answer2():<br/>&gt; assert func(6) == 6<br/><span class="error">E assert 7 == 6</span><br/><span class="error">E + where 7 = func(6)</span><br/><br/>test_login.py:78: AssertionError<br/> -----------------------------Captured stdout setup------------------------------ <br/>setup_function:每个用例开始前都会执行
<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_login.py::test_login</td>
<td class="col-duration">54.03</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log"> -----------------------------Captured stdout setup------------------------------ <br/>setup_function:每个用例开始前都会执行
<br/> ------------------------------Captured stdout call------------------------------ <br/>周朝阳 qazwsxedc http://192.168.2.31/cm
<br/> ------------------------------Captured stderr call------------------------------ <br/>2020-06-02 10:13:13,929 - read_config - INFO - the userInfo : 周朝阳
2020-06-02 10:13:13,929 - read_config - INFO - the userInfo : qazwsxedc
2020-06-02 10:13:13,929 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:13:13,930 - testLogin - INFO - username: 周朝阳
2020-06-02 10:13:13,930 - testLogin - INFO - password :qazwsxedc
2020-06-02 10:13:13,930 - testLogin - INFO - Open url: http://192.168.2.31/cm
2020-06-02 10:13:13,931 - read_config - INFO - the browserType : Chrome
2020-06-02 10:13:13,933 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:13:13,933 - browser_engine - INFO - browserName: Chrome
2020-06-02 10:13:20,546 - browser_engine - INFO - Open url: http://192.168.2.31/cm
2020-06-02 10:13:27,855 - browser_engine - INFO - Maximize the current window.
2020-06-02 10:13:27,859 - browser_engine - INFO - Set implicitly wait 10 seconds.
2020-06-02 10:13:27,905 - testLogin - INFO - tags.text;请选择所属部门
2020-06-02 10:13:29,321 - testLogin - INFO - tags2.text;瓯海区院
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO  read_config:read_config.py:35 the userInfo : 周朝阳
INFO  read_config:read_config.py:35 the userInfo : qazwsxedc
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  testLogin:test_login.py:27 username: 周朝阳
INFO  testLogin:test_login.py:28 password :qazwsxedc
INFO  testLogin:test_login.py:29 Open url: http://192.168.2.31/cm
INFO  read_config:read_config.py:25 the browserType : Chrome
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:17 browserName: Chrome
INFO  browser_engine:browser_engine.py:23 Open url: http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:26 Maximize the current window.
INFO  browser_engine:browser_engine.py:28 Set implicitly wait 10 seconds.
INFO  testLogin:test_login.py:36 tags.text;请选择所属部门
INFO  testLogin:test_login.py:44 tags2.text;瓯海区院<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_login.py::test_login1</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log"> -----------------------------Captured stdout setup------------------------------ <br/>setup_function:每个用例开始前都会执行
<br/> ------------------------------Captured stdout call------------------------------ <br/>Chrome 周朝阳 qazwsxedc
<br/> ------------------------------Captured stderr call------------------------------ <br/>2020-06-02 10:14:08,253 - read_config - INFO - the browserType : Chrome
2020-06-02 10:14:08,254 - read_config - INFO - the userInfo : 周朝阳
2020-06-02 10:14:08,254 - read_config - INFO - the userInfo : qazwsxedc
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO  read_config:read_config.py:25 the browserType : Chrome
INFO  read_config:read_config.py:35 the userInfo : 周朝阳
INFO  read_config:read_config.py:35 the userInfo : qazwsxedc<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_login.py::test_file2_answer1</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log"> -----------------------------Captured stdout setup------------------------------ <br/>setup_function:每个用例开始前都会执行
<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_main.py::test_file2_answer1</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="empty log">No log output captured.</div></td></tr></tbody></table></body></html>
\ No newline at end of file
import pytest
import sys
import time
sys.path.append('..')
from basepage.browser_engine import BrowserEngine
from basepage.check_gsjd import CheckGsjd
@pytest.mark.case3
def test_gsid_case1():
# browser = BrowserEngine()
# driver = browser.login_znfz()
test = CheckGsjd()
driver = test.choose_gsjd()
test.choose_gsjd_case(driver)
time.sleep(20)
driver.quit()
\ No newline at end of file
import pytest
import time
import sys
sys.path.append('..')
from basepage.read_config import ReadConfig
from basepage.browser_engine import BrowserEngine
from basepage.logger import Logger
logger = Logger(logger="testLogin").getlog()
'''
def setup_function():
print('setup_function:每个用例开始前都会执行')
def teardown_function():
print('teardown_function:每个用例结束后都会执行')
'''
@pytest.mark.case1
def test_login():
conf = ReadConfig()
username = conf.get_userInfo('username')
password = conf.get_userInfo('password')
url = conf.get_testUrl('URL')
print(username,password,url)
logger.info("username: %s" % username)
logger.info("password :%s" % password)
logger.info("Open url: %s" % url)
browser = BrowserEngine()
driver = browser.open_browser()
tags = driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[1]/div/div/span/span/span')
#print(tags.text)
logger.info("tags.text:%s" % tags.text)
tags.click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/span[1]').click()
tags2 = driver.find_element_by_xpath('//*[@id="rc-tree-select-list_1"]/ul/li/ul/li[3]/ul/li[3]/span[2]/span')
#print(tags2.text)
logger.info("tags2.text:%s" % tags2.text)
tags2.click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="username"]').send_keys(username)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(password)
driver.find_element_by_xpath('//*[@id="root"]/div/div/div[2]/form/div[4]/div/div/span/button').click()
time.sleep(10)
driver.quit()
@pytest.mark.case2
def test_login2():
browser = BrowserEngine()
driver = browser.login_znfz()
time.sleep(10)
driver.quit()
if __name__ == '__main__':
#pytest.main("D:/mywork/autotest/znfz_test1/test_cases")
# pytest.main(["-m=case1","--html=report.html"])
pytest.main()
import pytest
#def test_main():
# assert 5 != 5
def func(x):
return x + 1
@pytest.mark.case3
def test_file2_answer1():
assert func(9) == 10
#if __name__ == '__main__':
#pytest.main("D:/mywork/autotest/znfz_test1/test_cases")
# pytest.main(["-m=case1","--html=report.html"])
\ No newline at end of file
body {
font-family: Helvetica, Arial, sans-serif;
font-size: 12px;
/* do not increase min-width as some may use split screens */
min-width: 800px;
color: #999;
}
h1 {
font-size: 24px;
color: black;
}
h2 {
font-size: 16px;
color: black;
}
p {
color: black;
}
a {
color: #999;
}
table {
border-collapse: collapse;
}
/******************************
* SUMMARY INFORMATION
******************************/
#environment td {
padding: 5px;
border: 1px solid #E6E6E6;
}
#environment tr:nth-child(odd) {
background-color: #f6f6f6;
}
/******************************
* TEST RESULT COLORS
******************************/
span.passed, .passed .col-result {
color: green;
}
span.skipped, span.xfailed, span.rerun, .skipped .col-result, .xfailed .col-result, .rerun .col-result {
color: orange;
}
span.error, span.failed, span.xpassed, .error .col-result, .failed .col-result, .xpassed .col-result {
color: red;
}
/******************************
* RESULTS TABLE
*
* 1. Table Layout
* 2. Extra
* 3. Sorting items
*
******************************/
/*------------------
* 1. Table Layout
*------------------*/
#results-table {
border: 1px solid #e6e6e6;
color: #999;
font-size: 12px;
width: 100%
}
#results-table th, #results-table td {
padding: 5px;
border: 1px solid #E6E6E6;
text-align: left
}
#results-table th {
font-weight: bold
}
/*------------------
* 2. Extra
*------------------*/
.log:only-child {
height: inherit
}
.log {
background-color: #e6e6e6;
border: 1px solid #e6e6e6;
color: black;
display: block;
font-family: "Courier New", Courier, monospace;
height: 230px;
overflow-y: scroll;
padding: 5px;
white-space: pre-wrap
}
div.image {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin-left: 5px;
overflow: hidden;
width: 320px
}
div.image img {
width: 320px
}
div.video {
border: 1px solid #e6e6e6;
float: right;
height: 240px;
margin-left: 5px;
overflow: hidden;
width: 320px
}
div.video video {
overflow: hidden;
width: 320px;
height: 240px;
}
.collapsed {
display: none;
}
.expander::after {
content: " (show details)";
color: #BBB;
font-style: italic;
cursor: pointer;
}
.collapser::after {
content: " (hide details)";
color: #BBB;
font-style: italic;
cursor: pointer;
}
/*------------------
* 3. Sorting items
*------------------*/
.sortable {
cursor: pointer;
}
.sort-icon {
font-size: 0px;
float: left;
margin-right: 5px;
margin-top: 5px;
/*triangle*/
width: 0;
height: 0;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
}
.inactive .sort-icon {
/*finish triangle*/
border-top: 8px solid #E6E6E6;
}
.asc.active .sort-icon {
/*finish triangle*/
border-bottom: 8px solid #999;
}
.desc.active .sort-icon {
/*finish triangle*/
border-top: 8px solid #999;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Test Report</title>
<link href="assets/style.css" rel="stylesheet" type="text/css"/></head>
<body onLoad="init()">
<script>/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
function toArray(iter) {
if (iter === null) {
return null;
}
return Array.prototype.slice.call(iter);
}
function find(selector, elem) {
if (!elem) {
elem = document;
}
return elem.querySelector(selector);
}
function find_all(selector, elem) {
if (!elem) {
elem = document;
}
return toArray(elem.querySelectorAll(selector));
}
function sort_column(elem) {
toggle_sort_states(elem);
var colIndex = toArray(elem.parentNode.childNodes).indexOf(elem);
var key;
if (elem.classList.contains('numeric')) {
key = key_num;
} else if (elem.classList.contains('result')) {
key = key_result;
} else {
key = key_alpha;
}
sort_table(elem, key(colIndex));
}
function show_all_extras() {
find_all('.col-result').forEach(show_extras);
}
function hide_all_extras() {
find_all('.col-result').forEach(hide_extras);
}
function show_extras(colresult_elem) {
var extras = colresult_elem.parentNode.nextElementSibling;
var expandcollapse = colresult_elem.firstElementChild;
extras.classList.remove("collapsed");
expandcollapse.classList.remove("expander");
expandcollapse.classList.add("collapser");
}
function hide_extras(colresult_elem) {
var extras = colresult_elem.parentNode.nextElementSibling;
var expandcollapse = colresult_elem.firstElementChild;
extras.classList.add("collapsed");
expandcollapse.classList.remove("collapser");
expandcollapse.classList.add("expander");
}
function show_filters() {
var filter_items = document.getElementsByClassName('filter');
for (var i = 0; i < filter_items.length; i++)
filter_items[i].hidden = false;
}
function add_collapse() {
// Add links for show/hide all
var resulttable = find('table#results-table');
var showhideall = document.createElement("p");
showhideall.innerHTML = '<a href="javascript:show_all_extras()">Show all details</a> / ' +
'<a href="javascript:hide_all_extras()">Hide all details</a>';
resulttable.parentElement.insertBefore(showhideall, resulttable);
// Add show/hide link to each result
find_all('.col-result').forEach(function(elem) {
var collapsed = get_query_parameter('collapsed') || 'Passed';
var extras = elem.parentNode.nextElementSibling;
var expandcollapse = document.createElement("span");
if (extras.classList.contains("collapsed")) {
expandcollapse.classList.add("expander")
} else if (collapsed.includes(elem.innerHTML)) {
extras.classList.add("collapsed");
expandcollapse.classList.add("expander");
} else {
expandcollapse.classList.add("collapser");
}
elem.appendChild(expandcollapse);
elem.addEventListener("click", function(event) {
if (event.currentTarget.parentNode.nextElementSibling.classList.contains("collapsed")) {
show_extras(event.currentTarget);
} else {
hide_extras(event.currentTarget);
}
});
})
}
function get_query_parameter(name) {
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}
function init () {
reset_sort_headers();
add_collapse();
show_filters();
sort_column(find('.initial-sort'));
find_all('.sortable').forEach(function(elem) {
elem.addEventListener("click",
function(event) {
sort_column(elem);
}, false)
});
};
function sort_table(clicked, key_func) {
var rows = find_all('.results-table-row');
var reversed = !clicked.classList.contains('asc');
var sorted_rows = sort(rows, key_func, reversed);
/* Whole table is removed here because browsers acts much slower
* when appending existing elements.
*/
var thead = document.getElementById("results-table-head");
document.getElementById('results-table').remove();
var parent = document.createElement("table");
parent.id = "results-table";
parent.appendChild(thead);
sorted_rows.forEach(function(elem) {
parent.appendChild(elem);
});
document.getElementsByTagName("BODY")[0].appendChild(parent);
}
function sort(items, key_func, reversed) {
var sort_array = items.map(function(item, i) {
return [key_func(item), i];
});
sort_array.sort(function(a, b) {
var key_a = a[0];
var key_b = b[0];
if (key_a == key_b) return 0;
if (reversed) {
return (key_a < key_b ? 1 : -1);
} else {
return (key_a > key_b ? 1 : -1);
}
});
return sort_array.map(function(item) {
var index = item[1];
return items[index];
});
}
function key_alpha(col_index) {
return function(elem) {
return elem.childNodes[1].childNodes[col_index].firstChild.data.toLowerCase();
};
}
function key_num(col_index) {
return function(elem) {
return parseFloat(elem.childNodes[1].childNodes[col_index].firstChild.data);
};
}
function key_result(col_index) {
return function(elem) {
var strings = ['Error', 'Failed', 'Rerun', 'XFailed', 'XPassed',
'Skipped', 'Passed'];
return strings.indexOf(elem.childNodes[1].childNodes[col_index].firstChild.data);
};
}
function reset_sort_headers() {
find_all('.sort-icon').forEach(function(elem) {
elem.parentNode.removeChild(elem);
});
find_all('.sortable').forEach(function(elem) {
var icon = document.createElement("div");
icon.className = "sort-icon";
icon.textContent = "vvv";
elem.insertBefore(icon, elem.firstChild);
elem.classList.remove("desc", "active");
elem.classList.add("asc", "inactive");
});
}
function toggle_sort_states(elem) {
//if active, toggle between asc and desc
if (elem.classList.contains('active')) {
elem.classList.toggle('asc');
elem.classList.toggle('desc');
}
//if inactive, reset all other functions and add ascending active
if (elem.classList.contains('inactive')) {
reset_sort_headers();
elem.classList.remove('inactive');
elem.classList.add('active');
}
}
function is_all_rows_hidden(value) {
return value.hidden == false;
}
function filter_table(elem) {
var outcome_att = "data-test-result";
var outcome = elem.getAttribute(outcome_att);
class_outcome = outcome + " results-table-row";
var outcome_rows = document.getElementsByClassName(class_outcome);
for(var i = 0; i < outcome_rows.length; i++){
outcome_rows[i].hidden = !elem.checked;
}
var rows = find_all('.results-table-row').filter(is_all_rows_hidden);
var all_rows_hidden = rows.length == 0 ? true : false;
var not_found_message = document.getElementById("not-found-message");
not_found_message.hidden = !all_rows_hidden;
}
</script>
<h1>report.html</h1>
<p>Report generated on 02-Jun-2020 at 10:36:16 by <a href="https://pypi.python.org/pypi/pytest-html">pytest-html</a> v2.1.1</p>
<h2>Environment</h2>
<table id="environment">
<tr>
<td>Packages</td>
<td>{"pluggy": "0.13.1", "py": "1.8.1", "pytest": "5.4.2"}</td></tr>
<tr>
<td>Platform</td>
<td>Windows-10-10.0.18362-SP0</td></tr>
<tr>
<td>Plugins</td>
<td>{"forked": "1.1.3", "html": "2.1.1", "metadata": "1.9.0", "rerunfailures": "9.0", "xdist": "1.32.0"}</td></tr>
<tr>
<td>Python</td>
<td>3.8.2</td></tr></table>
<h2>Summary</h2>
<p>4 tests ran in 58.87 seconds. </p>
<p class="filter" hidden="true">(Un)check the boxes to filter the results.</p><input checked="true" class="filter" data-test-result="passed" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="passed">4 passed</span>, <input checked="true" class="filter" data-test-result="skipped" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="skipped">0 skipped</span>, <input checked="true" class="filter" data-test-result="failed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="failed">0 failed</span>, <input checked="true" class="filter" data-test-result="error" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="error">0 errors</span>, <input checked="true" class="filter" data-test-result="xfailed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="xfailed">0 expected failures</span>, <input checked="true" class="filter" data-test-result="xpassed" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="xpassed">0 unexpected passes</span>, <input checked="true" class="filter" data-test-result="rerun" disabled="true" hidden="true" name="filter_checkbox" onChange="filter_table(this)" type="checkbox"/><span class="rerun">0 rerun</span>
<h2>Results</h2>
<table id="results-table">
<thead id="results-table-head">
<tr>
<th class="sortable result initial-sort" col="result">Result</th>
<th class="sortable" col="name">Test</th>
<th class="sortable numeric" col="duration">Duration</th>
<th>Links</th></tr>
<tr hidden="true" id="not-found-message">
<th colspan="4">No results found. Try to check the filters</th></tr></thead>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_login.py::test_login</td>
<td class="col-duration">29.36</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log"> ------------------------------Captured stdout call------------------------------ <br/>周朝阳 qazwsxedc http://192.168.2.31/cm
<br/> ------------------------------Captured stderr call------------------------------ <br/>2020-06-02 10:35:17,729 - read_config - INFO - the userInfo : 周朝阳
2020-06-02 10:35:17,729 - read_config - INFO - the userInfo : qazwsxedc
2020-06-02 10:35:17,729 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:35:17,729 - testLogin - INFO - username: 周朝阳
2020-06-02 10:35:17,729 - testLogin - INFO - password :qazwsxedc
2020-06-02 10:35:17,729 - testLogin - INFO - Open url: http://192.168.2.31/cm
2020-06-02 10:35:17,729 - read_config - INFO - the browserType : Chrome
2020-06-02 10:35:17,744 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:35:17,744 - browser_engine - INFO - browserName: Chrome
2020-06-02 10:35:24,667 - browser_engine - INFO - Open url: http://192.168.2.31/cm
2020-06-02 10:35:31,968 - browser_engine - INFO - Maximize the current window.
2020-06-02 10:35:31,971 - browser_engine - INFO - Set implicitly wait 10 seconds.
2020-06-02 10:35:32,010 - testLogin - INFO - tags.text;请选择所属部门
2020-06-02 10:35:33,295 - testLogin - INFO - tags2.text:瓯海区院
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO  read_config:read_config.py:35 the userInfo : 周朝阳
INFO  read_config:read_config.py:35 the userInfo : qazwsxedc
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  testLogin:test_login.py:27 username: 周朝阳
INFO  testLogin:test_login.py:28 password :qazwsxedc
INFO  testLogin:test_login.py:29 Open url: http://192.168.2.31/cm
INFO  read_config:read_config.py:25 the browserType : Chrome
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:17 browserName: Chrome
INFO  browser_engine:browser_engine.py:23 Open url: http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:26 Maximize the current window.
INFO  browser_engine:browser_engine.py:28 Set implicitly wait 10 seconds.
INFO  testLogin:test_login.py:36 tags.text;请选择所属部门
INFO  testLogin:test_login.py:44 tags2.text:瓯海区院<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_login.py::test_login1</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log"> ------------------------------Captured stdout call------------------------------ <br/>Chrome 周朝阳 qazwsxedc
<br/> ------------------------------Captured stderr call------------------------------ <br/>2020-06-02 10:35:47,096 - read_config - INFO - the browserType : Chrome
2020-06-02 10:35:47,096 - read_config - INFO - the userInfo : 周朝阳
2020-06-02 10:35:47,096 - read_config - INFO - the userInfo : qazwsxedc
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO  read_config:read_config.py:25 the browserType : Chrome
INFO  read_config:read_config.py:35 the userInfo : 周朝阳
INFO  read_config:read_config.py:35 the userInfo : qazwsxedc<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_login.py::test_login2</td>
<td class="col-duration">29.21</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="log"> ------------------------------Captured stdout call------------------------------ <br/>周朝阳 qazwsxedc http://192.168.2.31/cm
<br/> ------------------------------Captured stderr call------------------------------ <br/>2020-06-02 10:35:47,107 - read_config - INFO - the userInfo : 周朝阳
2020-06-02 10:35:47,107 - read_config - INFO - the userInfo : qazwsxedc
2020-06-02 10:35:47,108 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:35:47,108 - browser_engine - INFO - username: 周朝阳
2020-06-02 10:35:47,115 - read_config - INFO - the browserType : Chrome
2020-06-02 10:35:47,115 - read_config - INFO - the testUrl : http://192.168.2.31/cm
2020-06-02 10:35:47,115 - browser_engine - INFO - browserName: Chrome
2020-06-02 10:35:54,000 - browser_engine - INFO - Open url: http://192.168.2.31/cm
2020-06-02 10:36:01,166 - browser_engine - INFO - Maximize the current window.
2020-06-02 10:36:01,166 - browser_engine - INFO - Set implicitly wait 10 seconds.
2020-06-02 10:36:01,220 - browser_engine - INFO - tags.text;请选择所属部门
2020-06-02 10:36:02,563 - browser_engine - INFO - tags2.text;瓯海区院
<br/> -------------------------------Captured log call-------------------------------- <br/>INFO  read_config:read_config.py:35 the userInfo : 周朝阳
INFO  read_config:read_config.py:35 the userInfo : qazwsxedc
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:39 username: 周朝阳
INFO  read_config:read_config.py:25 the browserType : Chrome
INFO  read_config:read_config.py:30 the testUrl : http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:17 browserName: Chrome
INFO  browser_engine:browser_engine.py:23 Open url: http://192.168.2.31/cm
INFO  browser_engine:browser_engine.py:26 Maximize the current window.
INFO  browser_engine:browser_engine.py:28 Set implicitly wait 10 seconds.
INFO  browser_engine:browser_engine.py:49 tags.text;请选择所属部门
INFO  browser_engine:browser_engine.py:57 tags2.text;瓯海区院<br/></div></td></tr></tbody>
<tbody class="passed results-table-row">
<tr>
<td class="col-result">Passed</td>
<td class="col-name">test_main.py::test_file2_answer1</td>
<td class="col-duration">0.00</td>
<td class="col-links"></td></tr>
<tr>
<td class="extra" colspan="4">
<div class="empty log">No log output captured.</div></td></tr></tbody></table></body></html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment