作者 bianxinhua

add README

正在显示 98 个修改的文件 包含 4638 行增加0 行删除

要显示太多修改。

为保证性能只显示 98 of 98+ 个文件。

wpftwphone=19990000008
pfphone=19990000011
pfphone1=19990000015
ckotherdeptphone=19990000012
pfphone2=18100000005
adminphone=19990000000
password=123456
base_url=https://ability-test.fjmaimaimai.com
base_public_url = http://public-interface-test.fjmaimaimai.com/
base_business_url = https://suplus-business-admin-gateway-test.fjmaimaimai.com/
base_worth_url = https://suplus-worth-web-gateway-test.fjmaimaimai.com/
\ No newline at end of file
... ...
.env_pro
reports/*
__pycache__/*
*.pyc
.python-version
logs/*
harfile/*
\ 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.7 (ability_api)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PackageRequirementsSettings">
<option name="requirementsPath" value="" />
</component>
<component name="TestRunnerService">
<option name="PROJECT_TEST_RUNNER" value="Unittests" />
</component>
</module>
\ No newline at end of file
... ...
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<XML>
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
</XML>
</code_scheme>
</component>
\ No newline at end of file
... ...
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default (1)" />
</state>
</component>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with NO BOM" />
</project>
\ No newline at end of file
... ...
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ 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.7 (ability_api)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>
</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/ability_api.iml" filepath="$PROJECT_DIR$/.idea/ability_api.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="b869bb6c-d2b2-46af-b73c-cd3237c48651" name="Default Changelist" comment="update 2020005122330">
<change afterPath="$PROJECT_DIR$/helpfunc/business_admin_func.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.env" beforeDir="false" afterPath="$PROJECT_DIR$/.env" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/ability_api.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/ability_api.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/app_api/firstpage_api/addquestion_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/app_api/firstpage_api/addquestion_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_0_1_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_0_1_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_1_0_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_1_0_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_1_1_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_1_1_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_0_0_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_0_0_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_0_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_0_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/api/task_api/task/rewards/submitCompete_1_api.yml" beforeDir="false" afterPath="$PROJECT_DIR$/api/task_api/task/rewards/submitCompete_1_api.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/accessToken.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/accessToken.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/authCode.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/authCode.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/credentials.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/credentials.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/serialNo.csv" beforeDir="false" afterPath="$PROJECT_DIR$/config/serialNo.csv" afterDir="false" />
<change beforePath="$PROJECT_DIR$/debugtalk.py" beforeDir="false" afterPath="$PROJECT_DIR$/debugtalk.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/helpfunc/login_func.py" beforeDir="false" afterPath="$PROJECT_DIR$/helpfunc/login_func.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/permission/ques_pf_permission/QX001_pf_permission.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/permission/ques_pf_permission/QX001_pf_permission.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/jxz/jxz_gb.yml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/jxz/jxz_wc.yml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW001.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW001.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW002.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW002.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW003.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW003.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW004.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW004.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW005.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW005.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW001.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW001.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW002.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW002.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW003.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW003.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW004.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW004.yml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW005.yml" beforeDir="false" afterPath="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW005.yml" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" 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/ability_api$login_func.coverage" NAME="login_func Coverage Results" MODIFIED="1593587330616" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
<SUITE FILE_PATH="coverage/ability_api$ucenter_loginAggregate_func.coverage" NAME="ucenter_loginAggregate_func Coverage Results" MODIFIED="1586524233572" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
<SUITE FILE_PATH="coverage/ability_api$debugtalk.coverage" NAME="debugtalk Coverage Results" MODIFIED="1593587381209" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ability_api$header_func.coverage" NAME="header_func Coverage Results" MODIFIED="1586653408797" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/helpfunc" />
<SUITE FILE_PATH="coverage/ability_api$run.coverage" NAME="run Coverage Results" MODIFIED="1587223202115" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
<SUITE FILE_PATH="coverage/ability_api$test.coverage" NAME="test Coverage Results" MODIFIED="1586509371608" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="F:/untitled1" />
</component>
<component name="FavoritesManager">
<favorites_list name="ability_api" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskfinishTask_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskDetails_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="260">
<caret line="10" column="12" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/testcases/permission/ques_pf_permission/QX001_pf_permission.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="14" column="27" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/helpfunc/login_func.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="338">
<caret line="14" selection-start-line="14" selection-end-line="14" />
<folding>
<element signature="e#107#119#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/api/app_api/question_api/audits_ireview_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/api/app_api/question_api/applyForQuestions_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/testcases/question/add_question.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/testsuites/ability_suites.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/api/app_api/firstpage_api/addquestion_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="8" column="32" selection-start-line="8" selection-start-column="32" selection-end-line="8" selection-end-column="32" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>accessToken</find>
</findStrings>
</component>
<component name="Git.Settings">
<option name="PREVIOUS_COMMIT_AUTHORS">
<list>
<option value="bianxinhua" />
</list>
</option>
<option name="ROOT_SYNC" value="DONT_SYNC" />
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="master" />
</map>
</option>
<option name="AUTO_COMMIT_ON_CHERRY_PICK" value="true" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/testcases/task/taskPublish_0_1_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/taskfinishTask_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/jxz/jxz.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/iPublishedTasks_3_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/employee/allEmployees_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/rewards/currentTasks_1_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/jxz/jxz_wc.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_0_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/save_taskPublish_0_0_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/save_taskPublish_0_1_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/jb_fb_task/update_taskPublish_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_1_api.yml" />
<option value="$PROJECT_DIR$/api/app_api/login_api/auth/ucenter_login_api.yml" />
<option value="$PROJECT_DIR$/api/app_api/login_api/auth/loginModule_api.yml" />
<option value="$PROJECT_DIR$/api/app_api/login_api/auth/authorize_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/taskcheckAccept_api.yml" />
<option value="$PROJECT_DIR$/testcases/login_testcases.yml" />
<option value="$PROJECT_DIR$/helpfunc/usiness_admin_func.py" />
<option value="$PROJECT_DIR$/api/business_admin_api/login_api/auth/pwdLogin_api.yml" />
<option value="$PROJECT_DIR$/api/business_admin_api/login_api/auth/userCompamies_api.yml" />
<option value="$PROJECT_DIR$/api/business_admin_api/login_api/auth/anonymousLogin_api.yml" />
<option value="$PROJECT_DIR$/.env" />
<option value="$PROJECT_DIR$/helpfunc/business_admin_func.py" />
<option value="$PROJECT_DIR$/testcases/business_admin/login_testcases.yml" />
<option value="$PROJECT_DIR$/api/business_admin_api/login_api/auth/getSingleLoginMenus_api.yml" />
<option value="$PROJECT_DIR$/api/business_admin_api/login_api/auth/login_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW001.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW002.yml" />
<option value="$PROJECT_DIR$/testcases/task/jxz/jxz_gb.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW004.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW005.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW001.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW002.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW004.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW005.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_0_1_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_0_0_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_0_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_1_0_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_1_1_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_1_1_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW003.yml" />
<option value="$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW003.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/rewards/submitCompete_1_api.yml" />
<option value="$PROJECT_DIR$/api/task_api/task/bidTask_api.yml" />
<option value="$PROJECT_DIR$/testcases/task/jxz/JB/jxz_wc.yml" />
<option value="$PROJECT_DIR$/api/app_api/firstpage_api/addquestion_api.yml" />
<option value="$PROJECT_DIR$/debugtalk.py" />
<option value="$PROJECT_DIR$/testcases/permission/ques_pf_permission/QX001_pf_permission.yml" />
<option value="$PROJECT_DIR$/helpfunc/login_func.py" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-116" />
<option name="y" value="347" />
<option name="width" value="1382" />
<option name="height" value="741" />
</component>
<component name="ProjectId" id="1RGy0cbJxXUqydJBLy6eKhLCtup" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="ability_api" type="b2602c69:ProjectViewProjectNode" />
<item name="ability_api" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ability_api" type="b2602c69:ProjectViewProjectNode" />
<item name="ability_api" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="ability_api" type="b2602c69:ProjectViewProjectNode" />
<item name="ability_api" type="462c0819:PsiDirectoryNode" />
<item name="helpfunc" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../partner_api" />
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="E:\mmm_auto\ability_api\testcases\task" />
<recent name="E:\mmm_auto\ability_api\api\task_api\task\rewards" />
<recent name="E:\mmm_auto\ability_api\api\task_api\task" />
<recent name="F:\PycharmProjects\ability_api" />
<recent name="F:\PycharmProjects\ability_api\flask_demo\conf" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="E:\mmm-auto\ability_api\api\login_api\auth" />
<recent name="F:\PycharmProjects\ability_api\data" />
<recent name="F:\PycharmProjects\ability_api\common" />
<recent name="F:\PycharmProjects\ability_api\testcases\firstpage_Statistics\pf_statistics" />
<recent name="F:\PycharmProjects\ability_api\testcases\firstpage_Statistics\ck_statistic" />
</key>
</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.debugtalk">
<configuration name="debugtalk" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="ability_api" />
<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$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/debugtalk.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="header_func" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="ability_api" />
<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$/helpfunc" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/helpfunc/header_func.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="login_func" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="ability_api" />
<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$/helpfunc" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/helpfunc/login_func.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="run" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="ability_api" />
<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$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/run.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="ucenter_loginAggregate_func" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="ability_api" />
<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$/helpfunc" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/helpfunc/ucenter_loginAggregate_func.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Python.debugtalk" />
<item itemvalue="Python.login_func" />
<item itemvalue="Python.run" />
<item itemvalue="Python.header_func" />
<item itemvalue="Python.ucenter_loginAggregate_func" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="b869bb6c-d2b2-46af-b73c-cd3237c48651" name="Default Changelist" comment="" />
<created>1569307505769</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1569307505769</updated>
<workItem from="1586269949515" duration="456000" />
<workItem from="1586270482632" duration="115000" />
<workItem from="1586274022683" duration="1213000" />
<workItem from="1586339192317" duration="2329000" />
<workItem from="1586397538468" duration="1396000" />
<workItem from="1586399610082" duration="9198000" />
<workItem from="1586434007778" duration="9478000" />
<workItem from="1586482209895" duration="18621000" />
<workItem from="1586533596222" duration="3044000" />
<workItem from="1586586372043" duration="6473000" />
<workItem from="1586607693137" duration="8393000" />
<workItem from="1586621783755" duration="150000" />
<workItem from="1586652061321" duration="16966000" />
<workItem from="1586703950218" duration="2012000" />
<workItem from="1586757565849" duration="7087000" />
<workItem from="1586856283678" duration="1394000" />
<workItem from="1587004637787" duration="5367000" />
<workItem from="1587049863599" duration="2068000" />
<workItem from="1587089619197" duration="2123000" />
<workItem from="1587137033226" duration="1653000" />
<workItem from="1587223008662" duration="779000" />
<workItem from="1587285669974" duration="2012000" />
<workItem from="1587438578488" duration="108000" />
<workItem from="1587458223158" duration="87000" />
<workItem from="1587712363785" duration="709000" />
<workItem from="1588087396580" duration="1561000" />
<workItem from="1588125218282" duration="5677000" />
<workItem from="1588144827654" duration="3759000" />
<workItem from="1588213744280" duration="9635000" />
<workItem from="1588406599043" duration="4315000" />
<workItem from="1588429267369" duration="5369000" />
<workItem from="1588470105124" duration="6774000" />
<workItem from="1588499412883" duration="536000" />
<workItem from="1588519247249" duration="2685000" />
<workItem from="1588560502895" duration="3252000" />
<workItem from="1588581255717" duration="2296000" />
<workItem from="1588604176092" duration="2465000" />
<workItem from="1588664032043" duration="10333000" />
<workItem from="1588690656279" duration="3715000" />
<workItem from="1588729293089" duration="6481000" />
<workItem from="1588862254039" duration="598000" />
<workItem from="1588906928891" duration="1058000" />
<workItem from="1588922274222" duration="5878000" />
<workItem from="1588950434532" duration="4224000" />
<workItem from="1588992968044" duration="3725000" />
<workItem from="1589009471399" duration="10312000" />
<workItem from="1589036291053" duration="3070000" />
<workItem from="1589164775603" duration="4445000" />
<workItem from="1589296410027" duration="1621000" />
<workItem from="1589961212639" duration="622000" />
<workItem from="1590030213184" duration="7712000" />
<workItem from="1590118485560" duration="4662000" />
<workItem from="1590138145874" duration="878000" />
<workItem from="1590591405299" duration="861000" />
<workItem from="1590649814257" duration="813000" />
<workItem from="1590655556816" duration="7308000" />
<workItem from="1590716819403" duration="5697000" />
<workItem from="1590808085298" duration="1304000" />
<workItem from="1590994928440" duration="8372000" />
<workItem from="1591066699481" duration="3976000" />
<workItem from="1591113968238" duration="130000" />
<workItem from="1591241808944" duration="664000" />
<workItem from="1591497029453" duration="6310000" />
<workItem from="1591670960231" duration="1836000" />
<workItem from="1591774987449" duration="24000" />
<workItem from="1591861166508" duration="597000" />
<workItem from="1591952217403" duration="613000" />
<workItem from="1591956128038" duration="90000" />
<workItem from="1591973365840" duration="76000" />
<workItem from="1593312208996" duration="599000" />
<workItem from="1593421247784" duration="1460000" />
<workItem from="1593488079318" duration="1118000" />
<workItem from="1593505772287" duration="299000" />
<workItem from="1593508166724" duration="269000" />
<workItem from="1593587284374" duration="270000" />
<workItem from="1593600269425" duration="901000" />
<workItem from="1596008523285" duration="2504000" />
<workItem from="1596076368922" duration="1666000" />
<workItem from="1596185760744" duration="1134000" />
<workItem from="1596641147826" duration="299000" />
<workItem from="1596900739583" duration="259000" />
<workItem from="1596943209752" duration="2506000" />
<workItem from="1597039468185" duration="78000" />
<workItem from="1597041754821" duration="1176000" />
<workItem from="1597051169362" duration="1248000" />
<workItem from="1597120232086" duration="3312000" />
<workItem from="1597195556602" duration="605000" />
</task>
<task id="LOCAL-00001" summary="优化测试用例">
<created>1571644787323</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1571644787323</updated>
</task>
<task id="LOCAL-00002" summary="更新评分权限、解决方案权限">
<created>1571652504595</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1571652504595</updated>
</task>
<task id="LOCAL-00003" summary="增加后台管理系统解决问题用例">
<created>1571733685078</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1571733685078</updated>
</task>
<task id="LOCAL-00004" summary="增加清理数据库方法">
<created>1571735711678</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1571735711678</updated>
</task>
<task id="LOCAL-00005" summary="增加删除用户信息表和星数变动表的相关数据">
<created>1571795831220</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1571795831220</updated>
</task>
<task id="LOCAL-00006" summary="修正solution单词错误">
<created>1571822900342</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1571822900342</updated>
</task>
<task id="LOCAL-00007" summary="修改权限校验用例">
<created>1571823875440</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1571823875440</updated>
</task>
<task id="LOCAL-00008" summary="增加备选方案评分权限校验&#10;增加解决方案评分权限校验">
<created>1571887882531</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1571887882531</updated>
</task>
<task id="LOCAL-00009" summary="修改测试策略:改为每次执行用例集前,初始化数据库">
<created>1571898282448</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1571898282448</updated>
</task>
<task id="LOCAL-00010" summary="增加首页“已解决”“未解决”测试用例,todo">
<created>1571909069550</created>
<option name="number" value="00010" />
<option name="presentableId" value="LOCAL-00010" />
<option name="project" value="LOCAL" />
<updated>1571909069550</updated>
</task>
<task id="LOCAL-00011" summary="查看权限人员:已解决、未解决、解决中、总提问数量校验">
<created>1571968124444</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1571968124444</updated>
</task>
<task id="LOCAL-00012" summary="评分权限人员:已解决、未解决、解决中、总提问数量校验">
<created>1571972410540</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1571972410540</updated>
</task>
<task id="LOCAL-00013" summary="增加首页:已解决、解决中、未解决列表翻页校验">
<created>1571988166842</created>
<option name="number" value="00013" />
<option name="presentableId" value="LOCAL-00013" />
<option name="project" value="LOCAL" />
<updated>1571988166842</updated>
</task>
<task id="LOCAL-00014" summary="修正文件名错误问题">
<created>1573027546501</created>
<option name="number" value="00014" />
<option name="presentableId" value="LOCAL-00014" />
<option name="project" value="LOCAL" />
<updated>1573027546501</updated>
</task>
<task id="LOCAL-00015" summary="新增测试用例excel">
<created>1573030348571</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1573030348571</updated>
</task>
<task id="LOCAL-00016" summary="增加测试用例编号">
<created>1573031162159</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1573031162159</updated>
</task>
<task id="LOCAL-00017" summary="增加测试用例编号">
<created>1573032349822</created>
<option name="number" value="00017" />
<option name="presentableId" value="LOCAL-00017" />
<option name="project" value="LOCAL" />
<updated>1573032349822</updated>
</task>
<task id="LOCAL-00018" summary="fix">
<created>1573631165257</created>
<option name="number" value="00018" />
<option name="presentableId" value="LOCAL-00018" />
<option name="project" value="LOCAL" />
<updated>1573631165257</updated>
</task>
<task id="LOCAL-00019" summary="修改debugtalk,将函数分类写在对应的wrapper文件夹中">
<created>1574739413299</created>
<option name="number" value="00019" />
<option name="presentableId" value="LOCAL-00019" />
<option name="project" value="LOCAL" />
<updated>1574739413299</updated>
</task>
<task id="LOCAL-00020" summary="优化测试用例">
<created>1574739665177</created>
<option name="number" value="00020" />
<option name="presentableId" value="LOCAL-00020" />
<option name="project" value="LOCAL" />
<updated>1574739665177</updated>
</task>
<task id="LOCAL-00021" summary="修改time_wrap">
<created>1574739895653</created>
<option name="number" value="00021" />
<option name="presentableId" value="LOCAL-00021" />
<option name="project" value="LOCAL" />
<updated>1574739895653</updated>
</task>
<task id="LOCAL-00022" summary="test">
<created>1575021464060</created>
<option name="number" value="00022" />
<option name="presentableId" value="LOCAL-00022" />
<option name="project" value="LOCAL" />
<updated>1575021464061</updated>
</task>
<task id="LOCAL-00023" summary="test">
<created>1575535172659</created>
<option name="number" value="00023" />
<option name="presentableId" value="LOCAL-00023" />
<option name="project" value="LOCAL" />
<updated>1575535172659</updated>
</task>
<task id="LOCAL-00024" summary="test">
<created>1575536664531</created>
<option name="number" value="00024" />
<option name="presentableId" value="LOCAL-00024" />
<option name="project" value="LOCAL" />
<updated>1575536664531</updated>
</task>
<task id="LOCAL-00025" summary="test">
<created>1575537356694</created>
<option name="number" value="00025" />
<option name="presentableId" value="LOCAL-00025" />
<option name="project" value="LOCAL" />
<updated>1575537356694</updated>
</task>
<task id="LOCAL-00026" summary="test">
<created>1575538586819</created>
<option name="number" value="00026" />
<option name="presentableId" value="LOCAL-00026" />
<option name="project" value="LOCAL" />
<updated>1575538586819</updated>
</task>
<task id="LOCAL-00027" summary="test">
<created>1575538772203</created>
<option name="number" value="00027" />
<option name="presentableId" value="LOCAL-00027" />
<option name="project" value="LOCAL" />
<updated>1575538772203</updated>
</task>
<task id="LOCAL-00028" summary="test">
<created>1575538999699</created>
<option name="number" value="00028" />
<option name="presentableId" value="LOCAL-00028" />
<option name="project" value="LOCAL" />
<updated>1575538999699</updated>
</task>
<task id="LOCAL-00029" summary="test">
<created>1575595329456</created>
<option name="number" value="00029" />
<option name="presentableId" value="LOCAL-00029" />
<option name="project" value="LOCAL" />
<updated>1575595329456</updated>
</task>
<task id="LOCAL-00030" summary="jenkins发送通知">
<created>1575948439320</created>
<option name="number" value="00030" />
<option name="presentableId" value="LOCAL-00030" />
<option name="project" value="LOCAL" />
<updated>1575948439320</updated>
</task>
<task id="LOCAL-00031" summary="增加已完成的测试用例">
<created>1576057808471</created>
<option name="number" value="00031" />
<option name="presentableId" value="LOCAL-00031" />
<option name="project" value="LOCAL" />
<updated>1576057808471</updated>
</task>
<task id="LOCAL-00032" summary="修改错误用例">
<created>1576058168520</created>
<option name="number" value="00032" />
<option name="presentableId" value="LOCAL-00032" />
<option name="project" value="LOCAL" />
<updated>1576058168520</updated>
</task>
<task id="LOCAL-00033" summary="test">
<created>1576058833632</created>
<option name="number" value="00033" />
<option name="presentableId" value="LOCAL-00033" />
<option name="project" value="LOCAL" />
<updated>1576058833632</updated>
</task>
<task id="LOCAL-00034" summary="增加执行时间">
<created>1576117097733</created>
<option name="number" value="00034" />
<option name="presentableId" value="LOCAL-00034" />
<option name="project" value="LOCAL" />
<updated>1576117097733</updated>
</task>
<task id="LOCAL-00035" summary="test">
<created>1576121007574</created>
<option name="number" value="00035" />
<option name="presentableId" value="LOCAL-00035" />
<option name="project" value="LOCAL" />
<updated>1576121007574</updated>
</task>
<task id="LOCAL-00036" summary="add Dockerfile">
<created>1577091102171</created>
<option name="number" value="00036" />
<option name="presentableId" value="LOCAL-00036" />
<option name="project" value="LOCAL" />
<updated>1577091102195</updated>
</task>
<task id="LOCAL-00037" summary="test">
<created>1586444067591</created>
<option name="number" value="00037" />
<option name="presentableId" value="LOCAL-00037" />
<option name="project" value="LOCAL" />
<updated>1586444067592</updated>
</task>
<task id="LOCAL-00038" summary="test">
<created>1586445858422</created>
<option name="number" value="00038" />
<option name="presentableId" value="LOCAL-00038" />
<option name="project" value="LOCAL" />
<updated>1586445858422</updated>
</task>
<task id="LOCAL-00039" summary="update 202004111753">
<created>1586598800610</created>
<option name="number" value="00039" />
<option name="presentableId" value="LOCAL-00039" />
<option name="project" value="LOCAL" />
<updated>1586598800611</updated>
</task>
<task id="LOCAL-00040" summary="update 202004112040">
<created>1586608862696</created>
<option name="number" value="00040" />
<option name="presentableId" value="LOCAL-00040" />
<option name="project" value="LOCAL" />
<updated>1586608862696</updated>
</task>
<task id="LOCAL-00041" summary="update 202004191730">
<created>1587288519826</created>
<option name="number" value="00041" />
<option name="presentableId" value="LOCAL-00041" />
<option name="project" value="LOCAL" />
<updated>1587288519828</updated>
</task>
<task id="LOCAL-00042" summary="update 202004301600">
<created>1588234128585</created>
<option name="number" value="00042" />
<option name="presentableId" value="LOCAL-00042" />
<option name="project" value="LOCAL" />
<updated>1588234128585</updated>
</task>
<task id="LOCAL-00043" summary="update 202004301600">
<created>1588432911301</created>
<option name="number" value="00043" />
<option name="presentableId" value="LOCAL-00043" />
<option name="project" value="LOCAL" />
<updated>1588432911302</updated>
</task>
<task id="LOCAL-00044" summary="update 2020005061750">
<created>1588758639729</created>
<option name="number" value="00044" />
<option name="presentableId" value="LOCAL-00044" />
<option name="project" value="LOCAL" />
<updated>1588758639731</updated>
</task>
<task id="LOCAL-00045" summary="update 2020005122330">
<created>1589297363601</created>
<option name="number" value="00045" />
<option name="presentableId" value="LOCAL-00045" />
<option name="project" value="LOCAL" />
<updated>1589297363601</updated>
</task>
<task id="LOCAL-00046" summary="update 2020005122330">
<created>1590119242468</created>
<option name="number" value="00046" />
<option name="presentableId" value="LOCAL-00046" />
<option name="project" value="LOCAL" />
<updated>1590119242470</updated>
</task>
<option name="localTasksCounter" value="47" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="279263000" />
</component>
<component name="TodoView" selected-index="3">
<todo-panel id="selected-file">
<is-autoscroll-to-source value="true" />
</todo-panel>
<todo-panel id="all">
<are-packages-shown value="true" />
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<layout>
<window_info content_ui="combo" id="Project" order="0" sideWeight="0.49761903" visible="true" weight="0.32886267" />
<window_info id="Structure" order="1" sideWeight="0.50238097" side_tool="true" weight="0.30711043" />
<window_info id="Favorites" order="2" sideWeight="0.50238097" side_tool="true" weight="0.30711043" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.30153322" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39863715" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" sideWeight="0.49924356" weight="0.32879046" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" sideWeight="0.49848714" weight="0.32879046" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.50226927" side_tool="true" weight="0.32879046" />
<window_info active="true" anchor="bottom" id="Terminal" order="11" sideWeight="0.4977307" visible="true" weight="0.33705357" />
<window_info anchor="bottom" id="Python Console" order="12" weight="0.32879046" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="SciView" order="3" />
<window_info anchor="right" id="Database" order="4" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="UnknownFeatures">
<option featureType="com.intellij.fileTypeFactory" implementationName="*.env" />
<option featureType="com.intellij.fileTypeFactory" implementationName="*.csv" />
<option featureType="com.intellij.fileTypeFactory" implementationName="*.yml" />
<option featureType="com.intellij.fileTypeFactory" implementationName="*.tml" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State>
<option name="RECENTLY_FILTERED_USER_GROUPS">
<collection />
</option>
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
<collection />
</option>
<option name="COLUMN_ORDER" />
</State>
</value>
</entry>
</map>
</option>
<option name="RECENT_FILTERS">
<map>
<entry key="Branch">
<value>
<list />
</value>
</entry>
<entry key="User">
<value>
<list />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<ignored-roots>
<path value="$PROJECT_DIR$/HttpRunner" />
</ignored-roots>
<MESSAGE value="增加备选方案评分权限校验&#10;增加解决方案评分权限校验" />
<MESSAGE value="修改测试策略:改为每次执行用例集前,初始化数据库" />
<MESSAGE value="增加首页“已解决”“未解决”测试用例,todo" />
<MESSAGE value="查看权限人员:已解决、未解决、解决中、总提问数量校验" />
<MESSAGE value="评分权限人员:已解决、未解决、解决中、总提问数量校验" />
<MESSAGE value="增加首页:已解决、解决中、未解决列表翻页校验" />
<MESSAGE value="修正文件名错误问题" />
<MESSAGE value="新增测试用例excel" />
<MESSAGE value="增加测试用例编号" />
<MESSAGE value="fix" />
<MESSAGE value="修改debugtalk,将函数分类写在对应的wrapper文件夹中" />
<MESSAGE value="优化测试用例" />
<MESSAGE value="修改time_wrap" />
<MESSAGE value="jenkins发送通知" />
<MESSAGE value="增加已完成的测试用例" />
<MESSAGE value="修改错误用例" />
<MESSAGE value="增加执行时间" />
<MESSAGE value="add Dockerfile" />
<MESSAGE value="test" />
<MESSAGE value="update 202004111753" />
<MESSAGE value="update 202004112040" />
<MESSAGE value="update 202004191730" />
<MESSAGE value="update 202004301600" />
<MESSAGE value="update 2020005061750" />
<MESSAGE value="update 2020005122330" />
<option name="LAST_COMMIT_MESSAGE" value="update 2020005122330" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW004.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="93">
<caret line="47" selection-start-line="47" selection-start-column="1" selection-end-line="55" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW005.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1545">
<caret line="116" column="23" selection-start-line="81" selection-start-column="1" selection-end-line="116" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW005.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1545">
<caret line="116" column="23" selection-start-line="81" selection-start-column="1" selection-end-line="116" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW004.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="753">
<caret line="47" selection-start-line="47" selection-start-column="1" selection-end-line="55" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW001.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="484">
<caret line="22" selection-start-line="22" selection-start-column="1" selection-end-line="23" selection-end-column="59" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_0_0_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_0_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="9" column="21" selection-start-line="9" selection-start-column="21" selection-end-line="9" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/qd_fb_task/taskPublish_0_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/qd_fb_task/tasksearchResources_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="9" column="12" selection-start-line="9" selection-start-column="12" selection-end-line="9" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_0_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="8" column="16" lean-forward="true" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_1_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/jb_fb_task/tasksearchResources_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_0_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="181">
<caret line="35" column="27" selection-start-line="35" selection-start-column="27" selection-end-line="35" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_1_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="37" selection-start-line="31" selection-start-column="37" selection-end-line="31" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/rewards/currentTasks_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="528">
<caret line="24" column="17" selection-start-line="24" selection-start-column="17" selection-end-line="24" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/jxz/jxz_gb.yml" />
<entry file="file://$PROJECT_DIR$/testcases/task/jxz/jxz_wc.yml" />
<entry file="file://$PROJECT_DIR$/testcases/task/save_taskPublish_0_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="12" column="55" selection-start-line="12" selection-start-column="55" selection-end-line="12" selection-end-column="55" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/jb_fb_task/taskPublish_0_1_0_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="9" column="20" selection-start-line="9" selection-start-column="20" selection-end-line="9" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW003.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="16" selection-start-line="16" selection-end-line="19" selection-end-column="43" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/jxz/JB/jxz_wc.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1210">
<caret line="55" column="20" selection-start-line="55" selection-start-column="20" selection-end-line="55" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/rewards/currentTasks_0_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="17" column="34" selection-start-line="17" selection-start-column="34" selection-end-line="17" selection-end-column="34" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/bidTask_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="682">
<caret line="31" column="14" selection-start-line="31" selection-start-column="10" selection-end-line="31" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/rewards/submitCompete_1_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="484">
<caret line="22" column="17" selection-start-line="22" selection-start-column="17" selection-end-line="22" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/rewards/submitCompete_0_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="4" selection-start-line="4" selection-end-line="7" selection-end-column="55" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_QD/QDRW003.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="36" selection-start-line="12" selection-start-column="36" selection-end-line="12" selection-end-column="36" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/jxz/QD/jxz_wc.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/run.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="11" column="11" selection-start-line="11" selection-start-column="11" selection-end-line="11" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/permission/ques_pf_permission/QX002_pf_levelequal_permission.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/business_admin_api/login_api/auth/login_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="462">
<caret line="21" selection-start-line="21" selection-end-line="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/business_admin_api/login_api/auth/pwdLogin_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="6" selection-start-line="6" selection-end-line="7" selection-end-column="51" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/business_admin_api/login_api/auth/getSingleLoginMenus_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="8" column="8" selection-start-line="8" selection-start-column="8" selection-end-line="8" selection-end-column="51" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/business_admin/login_testcases.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="95">
<caret line="17" selection-start-line="17" selection-end-line="18" selection-end-column="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/task/taskPublish_JB/JBRW002.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="924">
<caret line="42" column="9" selection-start-line="42" selection-start-column="9" selection-end-line="42" selection-end-column="61" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/dfb_task/iPublishedTasks_0_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/dfb_task/taskdeleteTask_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/iPublishedTasks_3_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="462">
<caret line="21" selection-start-line="21" selection-end-line="23" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskStatistics.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/debugtalk.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="294">
<caret line="31" column="28" selection-start-line="31" selection-start-column="28" selection-end-line="31" selection-end-column="28" />
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskcloseTask_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskcheckAccept_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskfinishTask_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/task_api/task/taskDetails_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/.env">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="260">
<caret line="10" column="12" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/helpfunc/login_func.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="338">
<caret line="14" selection-start-line="14" selection-end-line="14" />
<folding>
<element signature="e#107#119#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/api/app_api/question_api/audits_ireview_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/app_api/question_api/applyForQuestions_api.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/testcases/question/add_question.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/testsuites/ability_suites.yml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/api/app_api/firstpage_api/addquestion_api.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="8" column="32" selection-start-line="8" selection-start-column="32" selection-end-line="8" selection-end-column="32" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/testcases/permission/ques_pf_permission/QX001_pf_permission.yml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208">
<caret line="14" column="27" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
</state>
</provider>
</entry>
</component>
</project>
\ No newline at end of file
... ...
FROM python:3
RUN git clone http://dengyuting:dyt_123456@gitlab.fjmaimaimai.com/dengyuting/ability_api.git /ability_api&& cd /ability_api && git pull
WORKDIR /ability_api
RUN pip install --no-cache-dir -r requirements.txt
RUN hrun testsuites/ability_suites.yml --save-tests
RUN python sendmsg.py
\ No newline at end of file
... ...
name: 发布提问
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title: 最有价值测试${get_second()}
content: 最有价值测试${get_second()}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: abilityIOSTest/1000012 CFNetwork/1121.2.2 Darwin/19.3.0
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
content: $content
id: 0
initDep:
id: 101229
name: 食品
pictures:
- h: 1334
path: http://ability-test.fjmaimaimai.com:8899/html/ab/1586654116769645740.jpg
w: 750
relatedDeps:
- id: 101229
name: 食品
selected: true
title: $title
way: 1
method: POST
url: /v1/question/addQuestion
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 发布成功
... ...
name: 首页公告内容:/v1/notice/announcement
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json: {}
method: POST
url: /v1/notice/announcement
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取公告信息成功
\ No newline at end of file
... ...
name: 首页BOSS足迹:/v1/question/bossFootprints
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '1'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.4.0
json: {}
method: POST
url: /v1/question/bossFootprints
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取BOSS足迹成功
\ No newline at end of file
... ...
name: 首页搜索:/v1/question/searchAll
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '1'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.5.0
json:
keyword: ' '
pageIndex: 0
pageSize: 20
solved: 0
method: POST
url: /v1/question/searchAll
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取提问列表成功
... ...
name: /api/time/get_timestamp
request:
headers:
User-Agent: okhttp/3.12.3
method: GET
url: http://tongji.fjmaimaimai.com/api/time/get_timestamp
validate:
- eq:
- content.msg
- success
- eq:
- content.code
- 0
\ No newline at end of file
... ...
name: 获取授权令牌
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
teardown_hooks:
- ${teardown_hook_get_accesstoken($response)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: abilityIOSTest/120004 CFNetwork/1121.2.2 Darwin/19.3.0
# X-MMM-AppName: com.maimaimai.abilityIOS
X-MMM-AppProject: ability
X-MMM-DeviceType: "0"
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
clientId: lks3Z8Ncn2j
authCode: ${get_authcode()}
clientSecret: gtfhyjukiol3Qncbvmdwe67khh
method: POST
url: /v1/auth/accessToken
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
\ No newline at end of file
... ...
name: 客户端账号登录
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(wpftwphone)}
teardown_hooks:
- ${teardown_hook_get_authcode($response)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: abilityIOSTest/120004 CFNetwork/1121.2.2 Darwin/19.3.0
X-MMM-AppName: com.maimaimai.abilityIOS
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
clientId: lks3Z8Ncn2j
credentials: ${get_credentials()}
cuid: ${get_cuid()}
muid: ${get_muid()}
cid: ${get_cid()}
method: POST
url: /v1/auth/authorize
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 登录成功
... ...
name: 用户中心账号登录
base_url: ${ENV(base_public_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
grantType: signInPassword
phone: ${ENV(allphone)}
password: 7c4a8d09ca3762af61e59520943dc26494f8941b
Type: 1
msg: ok
teardown_hooks:
- ${teardown_hook_get_cuid($response)}
- ${teardown_hook_get_credentials($response)}
- ${teardown_hook_get_muid($response)}
- ${teardown_hook_get_cid($response)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-DeviceType: '1'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.9.0
json:
grantType: $grantType
password: $password
phone: $phone
clientId: lks3Z8Ncn2j
method: POST
url: ucenter/v2/auth/loginAggregate
extract:
# cuid: content.data.cuid
credentials: content.data.credentials
validate:
- eq:
- content.msg
- ok
... ...
name: 公告列表:/v1/message/announcements
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json: {}
method: POST
url: /v1/message/announcements
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取公告信息成功
\ No newline at end of file
... ...
name: 消息数量统计(首页、个人中心):/v1/message/msgStatistics
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
typeTotal: 1835019
method: POST
url: /v1/message/msgStatistics
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取统计信息成功
\ No newline at end of file
... ...
name: 申请解决提问:/v1/question/applyForQuestions
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
qid: $qid
method: POST
url: /v1/question/applyForQuestions
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 申请解决成功
... ...
name: 审核提问:/v1/question/auditQuestion
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
published: 2
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
id: $qid
published: $published
qTypeId: 149
scoreAsk: 0.5
method: POST
url: /v1/question/auditQuestion
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 审核成功
... ...
name: 待我审核:/v1/question/audits_ireview
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
#output:
# qid: qid
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
dids: ''
lastId: 0
pageSize: 20
method: POST
url: /v1/question/audits_ireview
#extract:
# qid: content.data.questions.0.id
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 问题审核列表成功
... ...
name: 获取BOSS足迹:/v2/question/bossFootprints
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
var_access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $var_access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $var_access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
pageIndex: 0
pageSize: 20
method: POST
url: /v2/question/bossFootprints
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取BOSS足迹成功
... ...
name: 查看提问详情:/v2/question/details
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
teardown_hooks:
- ${teardown_hook_get_serialNo($response)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json:
# commentLastId: 0
# commentPageSize: 20
qid: $qid
method: POST
url: /v2/question/details
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取问题详情成功
\ No newline at end of file
... ...
name: 获取用户信息:/v2/user/userInfo
base_url: ${ENV(base_url)}
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
var_access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $var_access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $var_access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 0.12.0
json: {}
method: POST
url: /v2/user/userInfo
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取用户信息
... ...
name: 登录公司
base_url: ${ENV(base_business_url)}
verify: False
teardown_hooks:
- ${teardown_hook_get_access_token($response)}
request:
headers:
Content-Type: application/json; charset=UTF-8
Authorization: Bearer ${get_Authorization()}
Origin: https://enterprise-platform-dev.fjmaimaimai.com
Referer: https://enterprise-platform-dev.fjmaimaimai.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
X-Requested-With: XMLHttpRequest
json:
companyId: $companyId
method: POST
url: auth/anonymousLogin
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- ok
\ No newline at end of file
... ...
name: 登录列表
base_url: ${ENV(base_business_url)}
verify: False
teardown_hooks:
- ${teardown_hook_get_login_code($response)}
request:
headers:
Content-Type: application/json; charset=UTF-8
Authorization: Bearer ${get_access_token()}
Origin: https://enterprise-platform-dev.fjmaimaimai.com
Referer: https://enterprise-platform-dev.fjmaimaimai.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
X-Requested-With: XMLHttpRequest
json:
method: POST
url: auth/getSingleLoginMenus
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- ok
\ No newline at end of file
... ...
name: 登录价值系统
base_url: ${ENV(base_worth_url)}
verify: False
variables:
msg: ok
#teardown_hooks:
# - ${teardown_hook_get_Authorization($response)}
request:
headers:
# Authorization: Bearer ${get_access_token()}
Content-Type: application/json; charset=UTF-8
Origin: https://enterprise-platform-dev.fjmaimaimai.com
Referer: https://enterprise-platform-dev.fjmaimaimai.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
X-Requested-With: XMLHttpRequest
json:
code: ${get_login_code()}
method: POST
url: auth/login
validate:
- eq:
- content.msg
- $msg
... ...
name: 企业平台账号登录
base_url: ${ENV(base_business_url)}
verify: False
variables:
username: ${ENV(adminphone)}
password: 7c4a8d09ca3762af61e59520943dc26494f8941b
teardown_hooks:
- ${teardown_hook_get_Authorization($response)}
request:
headers:
Content-Type: application/json; charset=UTF-8
Origin: https://enterprise-platform-dev.fjmaimaimai.com
Referer: https://enterprise-platform-dev.fjmaimaimai.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
X-Requested-With: XMLHttpRequest
json:
password: $password
username: $username
method: POST
url: auth/pwdLogin
validate:
- eq:
- content.msg
- ok
... ...
name: 用户的公司列表
base_url: ${ENV(base_business_url)}
verify: False
request:
headers:
Content-Type: application/json; charset=UTF-8
Authorization: Bearer ${get_Authorization()}
Origin: https://enterprise-platform-dev.fjmaimaimai.com
Referer: https://enterprise-platform-dev.fjmaimaimai.com/
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36
X-Requested-With: XMLHttpRequest
json:
method: POST
url: companies/userCompamies
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- ok
... ...
name: 中标
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
uid: $uid
method: POST
url: /v1/task/bidTask
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 中标成功
\ No newline at end of file
... ...
name: 任务-待发布
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
pageIndex: 0
pageSize: 20
action: 0
method: POST
url: /v1/task/iPublishedTasks
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
# - $msg
\ No newline at end of file
... ...
name: 任务删除
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
method: POST
url: /v1/task/deleteTask
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 删除成功
# - $msg
\ No newline at end of file
... ...
name: 企业所有员工
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
method: POST
url: /v1/employee/allEmployees
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 查找成功
\ No newline at end of file
... ...
name: 任务-我发布的-待验收
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
pageIndex: 0
pageSize: 20
action: 3
method: POST
url: /v1/task/iPublishedTasks
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
... ...
name: 保存任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title: API测试竞标任务名称${get_nowtime()}
content: API测试竞标任务内容${get_nowtime()}
bidStartTime: ${get_bidStartTime()}
bidEndTime: ${get_bidEndTime()}
msg: '保存成功'
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: 0
action: 0
type: 1
title: $title
content: $content
acceptability:
images:
nature:
csVals:
bidStartTime: $bidStartTime
bidEndTime: $bidEndTime
bonus: 0
isReward: False
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 保存成功
# - $msg
\ No newline at end of file
... ...
name: 发布任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title1: API测试竞标任务名称:${get_nowtime()}
content: API测试竞标任务内容:${get_nowtime()}
acceptability: API测试验收标准:${get_nowtime()}
nature_id: 2
csVals_id13: 13
csVals_id3: 3
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: 0
action: 1
type: 0
title: $title1
content: $content
acceptability: $acceptability
images:
nature:
id: $nature_id
name: 线
csVals:
- id: $csVals_id3
name: 色泽
- id: $csVals_id13
name: 账期
bidStartTime: 0
bidEndTime: 0
bonus: 1000
refResources:
- id: $refResources_id
rType: $rType
serialNo: $serialNo
title: $title
isReward: True
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 发布成功
# - $msg
\ No newline at end of file
... ...
name: 发布任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title1: API测试竞标任务名称:${get_nowtime()}
content: API测试竞标任务内容:${get_nowtime()}
acceptability: API测试验收标准:${get_nowtime()}
nature_id: 2
csVals_id13: 13
csVals_id3: 3
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
action: 1
type: 1
title: $title1
content: $content
acceptability: $acceptability
images:
nature:
id: $nature_id
name: 线
csVals:
- id: $csVals_id3
name: 色泽
- id: $csVals_id13
name: 账期
bidStartTime: 0
bidEndTime: 0
bonus: 1000
refResources:
- id: $refResources_id
rType: $rType
serialNo: $serialNo
title: $title
isReward: False
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 发布成功
# - $msg
\ No newline at end of file
... ...
name: 搜索引用资源
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
keyword: ${get_serialNo()}
method: POST
url: /v1/task/searchResources
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
... ...
name: 编辑任务:/v1/task/taskPublish
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title: API测试任务名称${get_nowtime()}
content: API测试任务描述${get_nowtime()}
acceptability: API测试验收标准${get_nowtime()}
nature_id: 2
csVals_id13: 13
csVals_id3: 3
bidStartTime: ${get_bidStartTime()}
bidEndTime: ${get_bidEndTime()}
msg: '保存成功'
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
action: 0
type: 1
title: $title
content: $content
acceptability: $acceptability
images:
nature:
id: $nature_id
name: 线
csVals:
- id: $csVals_id3
name: 色泽
- id: $csVals_id13
name: 账期
bidStartTime: $bidStartTime
bidEndTime: $bidEndTime
bonus: 1000
isReward: False
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 更新成功
# - $msg
\ No newline at end of file
... ...
name: 保存任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title: API测试抢单任务名称${get_nowtime()}
content: API测试抢单任务内容${get_nowtime()}
msg: '保存成功'
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: 0
action: 0
type: 0
title: $title
content: $content
acceptability:
images:
nature:
csVals:
bidStartTime: 0
bidEndTime: 0
bonus: 0
isReward: False
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 保存成功
# - $msg
\ No newline at end of file
... ...
name: 发布任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title1: API测试抢单任务名称:${get_nowtime()}
content: API测试任抢单务内容:${get_nowtime()}
acceptability: API测试验收标准:${get_nowtime()}
nature_id: 2
csVals_id13: 13
csVals_id3: 3
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: 0
action: 1
type: 0
title: $title1
content: $content
acceptability: $acceptability
images:
nature:
id: $nature_id
name: 线
csVals:
- id: $csVals_id3
name: 色泽
- id: $csVals_id13
name: 账期
bidStartTime: 0
bidEndTime: 0
bonus: 1000
refResources:
- id: $refResources_id
rType: $rType
serialNo: $serialNo
title: $title
isReward: True
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 发布成功
# - $msg
\ No newline at end of file
... ...
name: 发布任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title1: API测试抢单任务名称:${get_nowtime()}
content: API测试抢单任务内容:${get_nowtime()}
acceptability: API测试验收标准:${get_nowtime()}
nature_id: 2
csVals_id13: 13
csVals_id3: 3
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
action: 1
type: 0
title: $title1
content: $content
acceptability: $acceptability
images:
nature:
id: $nature_id
name: 线
csVals:
- id: $csVals_id3
name: 色泽
- id: $csVals_id13
name: 账期
bidStartTime: 0
bidEndTime: 0
bonus: 1000
# refResources:
# - id: $refResources_id
# rType: $rType
# serialNo: $serialNo
# title: $title
isReward: False
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 发布成功
# - $msg
\ No newline at end of file
... ...
name: 搜索引用资源
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
keyword: ${get_serialNo()}
method: POST
url: /v1/task/searchResources
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
... ...
name: 编辑任务:/v1/task/taskPublish
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
title: API测试任务名称${get_nowtime()}
content: API测试任务描述${get_nowtime()}
acceptability: API测试验收标准${get_nowtime()}
nature_id: 2
csVals_id13: 13
csVals_id3: 3
msg: '保存成功'
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
action: 0
type: 0
title: $title
content: $content
acceptability: $acceptability
images:
nature:
id: $nature_id
name: 线
csVals:
- id: $csVals_id3
name: 色泽
- id: $csVals_id13
name: 账期
bidStartTime: 0
bidEndTime: 0
bonus: 1000
isReward: False
method: POST
url: /v1/task/taskPublish
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 更新成功
# - $msg
\ No newline at end of file
... ...
name: 公司任务(进行中、已完成)
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
pageIndex: 0
pageSize: 20
newest: 1
action: 0
method: POST
url: /v1/task/currentTasks
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
\ No newline at end of file
... ...
name: 公司任务(已完成)
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
pageIndex: 0
pageSize: 20
newest: 1
action: 1
method: POST
url: /v1/task/currentTasks
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
\ No newline at end of file
... ...
name: 公司悬赏任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
pageIndex: 0
pageSize: 20
method: POST
url: /v1/task/rewards
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
\ No newline at end of file
... ...
name: 抢单
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
action: 0
method: POST
url: /v1/task/submitCompete
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 抢单成功!
\ No newline at end of file
... ...
name: 竞标
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
action: 1
method: POST
url: /v1/task/submitCompete
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
\ No newline at end of file
... ...
name: 任务详情
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
method: POST
url: /v1/task/taskDetails
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
# - $msg
\ No newline at end of file
... ...
name: 获取任务数量统计
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
method: POST
url: /v1/task/taskStatistics
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
# - $msg
\ No newline at end of file
... ...
name: 我要验收
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
solveReport: API上传解决报告${get_nowtime()}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
resourceAwards:
- id: $refResources_id
providers:
- percent: 25
score: 11.25
uid: $uid11
uname: $uname11
- percent: 25
score: 11.25
uid: $uid0
uname: $uname0
- percent: 25
score: 11.25
uid: $uid1
uname: $uname1
- percent: 25
score: 11.25
uid: $uid8
uname: $uname8
rType: $rType
serialNo: $serialNo
title: $title
# solveImages:
## - h: 1334
## isLocal: false
## lastOneCount: 0
## path: http://ability-test.fjmaimaimai.com:8899/html/ab/1588952391025416660.jpg
## w: 750
solveReport: $solveReport
taskAwards:
- bonus: 250
percent: 25
uid: $uid11
uname: $uname11
- bonus: 250
percent: 25
uid: $uid0
uname: $uname0
- bonus: 250
percent: 25
uid: $uid1
uname: $uname1
- bonus: 250
percent: 25
uid: $uid8
uname: $uname8
method: POST
url: /v1/task/checkAccept
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 验收成功
\ No newline at end of file
... ...
name: 任务关闭
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
reason: API测试关闭任务理由:${get_nowtime()}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
reason: $reason
method: POST
url: /v1/task/closeTask
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 关闭成功
# - $msg
\ No newline at end of file
... ...
name: 完成任务
base_url: ${ENV(base_url)}
verify: False
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ${get_accesstoken()}
sign: ${make_sign($currtime, $uuid, $access_token)}
request:
headers:
Content-Type: application/json;charset=utf-8
User-Agent: okhttp/3.12.3
X-MMM-AccessToken: $access_token
X-MMM-AppName: com.mmm.ability
X-MMM-AppProject: ability
X-MMM-DeviceType: '0'
X-MMM-Sign: $sign
X-MMM-Timestamp: $currtime
X-MMM-Uuid: $uuid
X-MMM-Version: 1.0.0
json:
id: $id
method: POST
url: /v1/task/finishTask
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 完成成功
... ...
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zdXBsdXMtYnVzaW5lc3MtYWRtaW4tZ2F0ZXdheS10ZXN0LmZqbWFpbWFpbWFpLmNvbVwvYXV0aFwvcHdkTG9naW4iLCJpYXQiOjE1OTIwNjExNDAsImV4cCI6MTU5MjA3MTk0MCwibmJmIjoxNTkyMDYxMTQwLCJqdGkiOiJzTVB3cXdBZlBLWDNRWlZPIiwic3ViIjozMjQ3MzY2MDExOTEzMjE2LCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIiwiY29tcGFueUlkIjozNjYsIm5pY2tuYW1lIjoiXHU1MzVlXHU0ZmUxXHU1MzRlIiwicGhvbmUiOiIxOTk5MDAwMDAwMCIsImlkIjozMjQ3MzY2MDExOTEzMjE2LCJhZG1pblR5cGUiOjJ9.4B6SP6_Atbh18dJTjMX6Q5byg8Rd-C6RCP-Wree0H8I
\ No newline at end of file
... ...
KdZiJ6h7ZE6aANNhH7Abzk387EywcMWi
\ No newline at end of file
... ...
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9zdXBsdXMtYnVzaW5lc3MtYWRtaW4tZ2F0ZXdheS10ZXN0LmZqbWFpbWFpbWFpLmNvbVwvYXV0aFwvYW5vbnltb3VzTG9naW4iLCJpYXQiOjE1OTIwNjExNDEsImV4cCI6MTU5MjA3MTk0MSwibmJmIjoxNTkyMDYxMTQxLCJqdGkiOiJtMUpuaWJtTm5IMlhHYkJGIiwic3ViIjozMjQ3MzY2MDExOTEzMjE2LCJwcnYiOiI4N2UwYWYxZWY5ZmQxNTgxMmZkZWM5NzE1M2ExNGUwYjA0NzU0NmFhIiwiY29tcGFueUlkIjozNjYsIm5pY2tuYW1lIjoiXHU1MzVlXHU0ZmUxXHU1MzRlIiwicGhvbmUiOiIxOTk5MDAwMDAwMCIsImlkIjozMjQ3MzY2MDExOTEzMjE2LCJhZG1pblR5cGUiOjJ9.K1VI_o-GAPP9iRTjvKvK2YWPmDNY62a0Hbu9pC8eO3c
\ No newline at end of file
... ...
mkknbjwck7
\ No newline at end of file
... ...
366
\ No newline at end of file
... ...
784cb5cdf36b1a12b1e8d70c70d6dd3599f4c8988c66b72d6bb7e9eeac92630581845891
\ No newline at end of file
... ...
3679205371953152
\ No newline at end of file
... ...
L/E+63yrDwN1Y4ElEIpAVhZN13z2IK6qAQ9phq9p0SKKfxQKaXkT2d23veueiLSxqzc3Md65qlxzrgYq6pqoqcPxLBdjUdTqt4zynqmr3ZzbJJQS1oHMe7Xaj+pIPuZ6NhVhDJLD03eIE1KyD359L7kOWiBKs5suOlnn/GRRKe8=
\ No newline at end of file
... ...
3248817613779968
\ No newline at end of file
... ...
10971
\ No newline at end of file
... ...
import json
import time
# from helpfunc.db_func import *
from helpfunc.header_func import *
from helpfunc.login_func import *
from helpfunc.business_admin_func import *
# from helpfunc.time_func import *
import time,datetime,re
from urllib.parse import *
def sleep(n_secs):
time.sleep(n_secs)
# def get_base_url(env_type="test"):
# """
# 根据配置选择运行环境
# :param env_type:
# :return:
# """
# if env_type == "test":
# return "https://ability-test.fjmaimaimai.com"
# else:
# return "https://ability-prod.fjmaimaimai.com"
def get_nowtime():
return time.strftime("%Y%m%d%H%M%S",time.localtime(time.time()))
def get_second():
curr_time = datetime.datetime.now()
return curr_time.second
# print(u.split("=")[1].rstrip('"'))
# res = str(re.findall('code=(.+?)$',u))
code='HDU2uFdWCbyA0CHF5%2FQwBPCjFv2DO%2FoHxRTS7e6FhOBLaYpL%2B%2FUiJmZMkzz87EoekMbqAKfPO0ga4nIP2NvEq5MJcFPmM%2Bp3G3pPDM3d530DbNjM0BdAc7YuUTON0SV%2Bz%2Fiq14YrJxTVHcNeX8VTm7ndWgx7ZxjLpZbhfSWMus4%3D'
# print(unquote(code))
\ No newline at end of file
... ...
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Date: 2020/4/9 11:23
# @Author:bxh
# @file: __init__.py.py
... ...
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Date: 2020/5/28 23:13
# @Author:bxh
# @file: usiness_admin_func.py
import json
from urllib.parse import *
path = 'E:/mmm_auto/ability_api/'
def teardown_hook_get_Authorization(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
Authorization =jsondata['data']['access']['token']
try:
# 保存token到文件
with open(path + 'config/Authorization.txt','w+') as f:
f.write(Authorization)
print('写入成功,Authorization:{}'.format(Authorization))
f.close()
except Exception as e:
print('写入失败', e)
return Authorization
def teardown_hook_get_access_token(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
access_token =jsondata['data']['access']['token']
try:
# 保存token到文件
with open(path + 'config/access_token.txt','w+') as f:
f.write(access_token)
print('写入成功,access_token:{}'.format(access_token))
f.close()
except Exception as e:
print('写入失败', e)
return access_token
def teardown_hook_get_login_code(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
login_code =jsondata['data']['list'][2]['url']
res = login_code.split("=")[1].rstrip('"')
res = unquote(res)
try:
# 保存token到文件
with open(path + 'config/login_code.txt','w+') as f:
f.write(res)
print('写入成功,res:{}'.format(res))
f.close()
except Exception as e:
print('写入失败', e)
return res
def get_Authorization():
try:
# 保存token到文件
with open(path + "config/Authorization.txt", 'r') as f:
Authorization = f.read()
print('读取成功,Authorization:{}'.format(Authorization))
except Exception as e:
print('读取失败', e)
# Authorization = str(Authorization)
return Authorization
def get_access_token():
try:
# 保存token到文件
with open(path + "config/access_token.txt", 'r') as f:
access_token = f.read()
print('读取成功,access_token:{}'.format(access_token))
except Exception as e:
print('读取失败', e)
# Authorization = str(Authorization)
return access_token
def get_login_code():
try:
# 保存token到文件
with open(path + "config/login_code.txt", 'r') as f:
login_code = f.read()
print('读取成功,access_token:{}'.format(login_code))
except Exception as e:
print('读取失败', e)
# Authorization = str(Authorization)
return login_code
... ...
# @Time :2019/11/26 11:25
# @Author :dengyuting
# @File :db_func.py
import pymysql
db_config ={"host": "115.29.205.99",
"port": 3306,
"user": "shiqiurong",
"password": "QGaBlwXT123dfvc7ip",
"db": "ability_display",
"charset": 'utf8'}
def setup_hook_clean_db():
"""
初始化时清理数据库中的历史数据
:return:
"""
db = pymysql.connect(**db_config)
cursor = db.cursor()
try:
#删除评论
cursor.execute("delete d from comment d LEFT JOIN comment a on d.id=a.cid LEFT JOIN question b on a.id = b.id LEFT JOIN departments c on b.relevantDepartmentId =c.id where c.company_id =42 and c.enabled = 1")
cursor.execute("delete d from comment d LEFT JOIN solution a on d.id=a.id LEFT JOIN question b on a.qid = b.id LEFT JOIN departments c on b.relevantDepartmentId =c.id where c.company_id =42 and c.enabled = 1")
cursor.execute("delete d from comment d LEFT JOIN question a on d.id =a.id LEFT JOIN departments b on a.relevantDepartmentId =b.id where b.company_id =42 and b.enabled = 1")
#删除解决方案
cursor.execute("delete a from solution a LEFT JOIN question b on a.qid=b.id LEFT JOIN departments c on b.relevantDepartmentId=c.id where c.company_id =42 and c.enabled = 1")
#删除问题
cursor.execute("delete a from question a LEFT JOIN departments b on a.relevantDepartmentId=b.id where b.company_id =42 and b.enabled = 1")
#删除用户消息表
cursor.execute("delete a from user_msg a LEFT JOIN user_info b on a.uid=b.uid where b.company_id=42")
# 删除用户星数变动表
cursor.execute("delete a from user_score_change a LEFT JOIN user_info b on a.uid=b.uid where b.company_id=42")
# 删除用户解决申请表
cursor.execute("delete from user_question_solve where uid in (select uid from user_info where company_id=42)")
# 删除质疑表
cursor.execute("delete from doubt where company_id=42")
# 删除额外加分表
cursor.execute("delete from bonus_point where company_id=42")
# 删除公告表
cursor.execute("delete from bulletin where company_id=42")
# 删除表彰管理表
cursor.execute("delete from commend where company_id=42")
# 删除用户消息表
cursor.execute("delete from user_msg where uid in (select uid from user_info where company_id=42)")
# 删除用户同感表
cursor.execute("delete from user_sympathy where uid in (select uid from user_info where company_id=42)")
# 删除问题标记表
cursor.execute("delete from question_marks where uid in (select uid from user_info where company_id=42)")
# 删除问题标记结果表
cursor.execute("delete from question_marks_result where uid in (select uid from user_info where company_id=42)")
# 删除用户提交表
cursor.execute("delete from user_commit where uid in (select uid from user_info where company_id=42)")
# 删除问题提交表
cursor.execute("delete a from question_commit a LEFT JOIN user_commit b on a.commitId =b.id LEFT JOIN user_info c on b.uid =c.uid where c.company_id =42")
db.commit()
print("delete OK")
except:
# 发生错误时回滚
db.rollback()
db.close()
def get_solveid(qid):
#根据问题id,查询相应的解决申请表id
db = pymysql.connect(**db_config)
cursor = db.cursor()
try:
cursor.execute('select id from user_question_solve where qid = %s',qid)
result = cursor.fetchone()
id = result[0]
return id
except:
# 发生错误时回滚
db.rollback()
db.close()
\ No newline at end of file
... ...
# @Time :2019/11/26 11:24
# @Author :dengyuting
# @File :header_func.py
import hashlib
import time
import uuid
def make_time():
"""
生成当前时间戳
"""
return str(round(time.time() * 1000))
def make_uuid():
"""
基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性
"""
return str(uuid.uuid1())
def make_sign(currtime, uuid, accessstoken):
"""
生成签名
:param currtime:
:param uuid:
:param accessstoken:
:return:
"""
sign = 'v!(MmM' + currtime + uuid + accessstoken + 'MmM)i^'
sign = hashlib.sha256(sign.encode("utf-8"))
encrypts = sign.hexdigest()
return encrypts
\ No newline at end of file
... ...
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Date: 2020/4/9 11:36
# @Author:bxh
# @file: login_func.py
import json
import time,datetime
path = 'E:/ability_api/'
def teardown_hook_sleep_N_secs(response,n_secs):
""" sleep n seconds after request """
if response.status_code == 200:
time.sleep(0.3)
else:
time.sleep(n_secs)
def teardown_hook_get_cuid(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
cuid =str(jsondata['data']['cuid'])
try:
with open(path + 'config/cuid.csv','w+') as f:
f.write(cuid)
print('写入成功,cuid:{}'.format(cuid))
f.close()
except Exception as e:
print('写入失败', e)
return cuid
def teardown_hook_get_serialNo(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
serialno =str(jsondata['data']['question']['serialNo'])
try:
with open(path + 'config/serialNo.csv','w+') as f:
f.write(serialno)
print('写入成功,serialno:{}'.format(serialno))
f.close()
except Exception as e:
print('写入失败', e)
return serialno
def teardown_hook_get_accesstoken(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
access_token =jsondata['data']['accessToken']
try:
# 保存token到文件
with open(path + 'config/accessToken.csv','w+') as f:
f.write(access_token)
print('写入成功,access_token:{}'.format(access_token))
f.close()
except Exception as e:
print('写入失败', e)
return access_token
def teardown_hook_get_authcode(response):
if response.status_code ==200:
jsondata = json.loads(response.text)
auth_code = jsondata['data']['authCode']
try:
with open(path + "config/authCode.csv", 'w+') as f:
f.write(auth_code)
print('写入成功,authCode:{}'.format(auth_code))
except Exception as e:
print('写入失败', e)
return auth_code
def get_authcode():
try:
with open(path + "config/authCode.csv", 'r') as f:
auth_code = f.read()
print('读取成功,authCode:{}'.format(auth_code))
except Exception as e:
print('读取失败', e)
auth_code = str(auth_code)
return auth_code
def get_accesstoken():
try:
# 保存token到文件
with open(path + "config/accessToken.csv", 'r') as f:
accesstoken = f.read()
print('读取成功,accesstoken:{}'.format(accesstoken))
except Exception as e:
print('读取失败', e)
accesstoken = str(accesstoken)
return accesstoken
def get_serialNo():
try:
with open(path + "config/serialNo.csv", 'r') as f:
serialno = f.read()
print('读取成功,serialno:{}'.format(serialno))
except Exception as e:
print('读取失败', e)
serialno = str(serialno)
return serialno
def get_cuid():
try:
with open(path + "config/cuid.csv", 'r') as f:
cuid = f.read()
print('读取成功,cuid:{}'.format(cuid))
except Exception as e:
print('读取失败', e)
cuid = str(cuid)
return cuid
def get_credentials():
try:
with open(path + "config/credentials.csv", 'r') as f:
credentials = f.read()
print('读取成功,credentials:{}'.format(credentials))
except Exception as e:
print('读取失败', e)
credentials = str(credentials)
return credentials
def get_muid():
try:
with open(path + "config/muid.csv", 'r') as f:
muid = f.read()
print('读取成功,muid:{}'.format(muid))
except Exception as e:
print('读取失败', e)
muid = str(muid)
return muid
def get_cid():
try:
with open(path + "config/cid.csv", 'r') as f:
cid = f.read()
print('读取成功,muid:{}'.format(cid))
except Exception as e:
print('读取失败', e)
cid = str(cid)
return cid
t =datetime.datetime.now()
def get_bidStartTime():
#当前日期
t1 = t.strftime('%Y-%m-%d 00:00:00')
# #转为秒级时间戳
# bidStartTime = time.mktime(time.strptime(t1, '%Y-%m-%d %H:%M:%S'))
# #转为毫秒级
# bidStartTime = str(bidStartTime*1000).split(".")[0]
return t1
def get_bidEndTime():
# 1天后
bidEndTime = (t + datetime.timedelta(days=1)).strftime("%Y-%m-%d 00:00:00")
return bidEndTime
def teardown_hook_get_credentials(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
credentials =str(jsondata['data']['credentials'])
try:
with open(path + 'config/credentials.csv','w+') as f:
f.write(credentials)
print('写入成功,credentials:{}'.format(credentials))
f.close()
except Exception as e:
print('写入失败', e)
return credentials
def teardown_hook_get_muid(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
muid =str(jsondata['data']['companys'][0]['muid'])
try:
with open(path + 'config/muid.csv','w+') as f:
f.write(muid)
print('写入成功,muid:{}'.format(muid))
f.close()
except Exception as e:
print('写入失败', e)
return muid
def teardown_hook_get_cid(response):
if response.status_code == 200:
jsondata = json.loads(response.text)
cid =str(jsondata['data']['companys'][0]['cid'])
try:
with open(path + 'config/cid.csv','w+') as f:
f.write(cid)
print('写入成功,muid:{}'.format(cid))
f.close()
except Exception as e:
print('写入失败', e)
return cid
\ No newline at end of file
... ...
requests
httprunner
paramiko
pymysql
\ No newline at end of file
... ...
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Date: 2020/4/12 19:13
# @Author:bxh
# @file: run.py
from httprunner.api import HttpRunner
from httprunner.report import gen_html_report
runner = HttpRunner(failfast=False, log_level='INFO')
runner.run('testsuites/')
gen_html_report(runner._summary, report_template="templates/ext_reports_template.html")
\ No newline at end of file
... ...
# @Time :2019/12/4 9:37
# @Author :dengyuting
# @File :sendmsg.py
import json
import requests
import os
"""
jenkins通知测试执行结果
"""
JENKINS_URL = str(os.getenv("JENKINS_URL"))
BUILD_NUMBER = str(os.getenv("BUILD_NUMBER"))
JOB_NAME = str(os.getenv("JOB_NAME"))
CAUSE = str(os.getenv("CAUSE"))
BUILD_URL = str(os.getenv("BUILD_URL"))
JOB_URL = str(os.getenv("JOB_URL"))
path = os.path.dirname(__file__)
summary_file = os.path.join(path, 'logs','testsuites','ability_suites.summary.json')
def getresult():
try:
with open(summary_file, 'r') as f:
f = f.read()
jsonfile = json.loads(f)
if jsonfile["success"] == True:
result = "SUCCESS"
else:
result = "FAIL"
total = jsonfile["stat"]["testcases"]["total"]
success = jsonfile["stat"]["testcases"]["success"]
fail = jsonfile["stat"]["testcases"]["fail"]
duration = round(jsonfile["time"]["duration"])
# teststeps_total = jsonfile["stat"]["teststeps"]["total"]
# teststeps_successes = jsonfile["stat"]["teststeps"]["successes"]
# teststeps_failures = jsonfile["stat"]["teststeps"]["failures"]
# teststeps_errors = jsonfile["stat"]["teststeps"]["errors"]
# teststeps_skipped = jsonfile["stat"]["teststeps"]["skipped"]
return result, total, success, fail, duration
except Exception as err:
print("this is err:{}" .format(err))
def sendinfo():
r =getresult()
print(type(r))
data = {}
data['msgtype'] = 'text'
data['text'] = {}
data['text']['content'] = '【'+JOB_NAME+'】\n 测试执行结果:'+r[0]+ \
'\n 执行时间:' +str(r[4])+ \
's\n TOTAL:' +str(r[1]) +'\n SUCCESS:' +str(r[2])+ '\n FAIL:' +str(r[3])+ \
'\n 查看控制台:' +BUILD_URL+'console \n 测试报告地址:' +JOB_URL+'Ability_20Test_20Report/ \n'
# data['text']['mentioned_mobile_list'] = ["13559112969","@all"]
url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b8028a75-89ff-4dc4-a1a7-6d8e3fd44552'
headers = {'Content-Type': 'application/json'}
requests.post(url, json=data, headers=headers)
if __name__ == '__main__':
sendinfo()
... ...
config:
name: 账号登录测试
base_url: ${ENV(base_business_url)}
teststeps:
- name: 登录企业平台
api: api/business_admin_api/login_api/auth/pwdLogin_api.yml
variables:
phone: ${ENV(adminphone)}
teardown_hooks:
- ${teardown_hook_get_Authorization($response)}
varidate:
validate:
- eq:
- content.msg
- ok
- name: 用户的公司列表
output:
- companyId
api: api/business_admin_api/login_api/auth/userCompamies_api.yml
extract:
companyId: content.data.company.0.id
validate:
- eq:
- content.msg
- ok
- eq:
- content.data.company.0.id
- $companyId
- name: 登录公司
api: api/business_admin_api/login_api/auth/anonymousLogin_api.yml
teardown_hooks:
- ${teardown_hook_get_access_token($response)}
varidate:
validate:
- eq:
- content.msg
- ok
- name: 登录列表
api: api/business_admin_api/login_api/auth/getSingleLoginMenus_api.yml
teardown_hooks:
- ${teardown_hook_get_login_code($response)}
varidate:
validate:
- eq:
- content.msg
- ok
- name: 登录价值系统
api: api/business_admin_api/login_api/auth/login_api.yml
# teardown_hooks:
# - ${teardown_hook_get_login_code($response)}
varidate:
validate:
- eq:
- content.msg
- ok
... ...
config:
name: 账号登录测试
base_url: ${ENV(base_url)}
teststeps:
- name: 登录统一用户中心
api: api/app_api/login_api/auth/ucenter_login_api.yml
teardown_hooks:
- ${teardown_hook_get_cuid($response)}
- ${teardown_hook_get_credentials($response)}
- ${teardown_hook_get_muid($response)}
- ${teardown_hook_get_cid($response)}
variables:
phone: ${ENV(pfphone)}
varidate:
validate:
- eq:
- content.msg
- ok
- name: 登录app系统
api: api/app_api/login_api/auth/authorize_api.yml
teardown_hooks:
- ${teardown_hook_get_authcode($response)}
varidate:
validate:
- eq:
- content.msg
- 登录成功accessToken
- name: 获取accessToken
api: api/app_api/login_api/auth/accessToken_api.yml
teardown_hooks:
- ${teardown_hook_get_accesstoken($response)}
varidate:
validate:
- eq:
- content.msg
- 获取成功
#- name: 获取用户信息
# api: api/app_api/user_api/userInfo_api.yml
# varidate:
# validate:
# - eq:
# - content.msg
# - 获取用户信息
#
#- name: 获取BOSS足迹
# api: api/app_api/question_api/bossFootprints_api.yml
# varidate:
# validate:
# - eq:
# - content.msg
# - 获取BOSS足迹成功
#
#- name: 消息数量统计(首页、个人中心)
# api: api/app_api/message_api/msgstatistics_api.yml
# varidate:
# validate:
# - eq:
# - content.msg
# - 获取统计信息成功
#
#- name: 公告列表
# api: api/app_api/message_api/msgannouncements_api.yml
# varidate:
# validate:
# - eq:
# - content.msg
# - 获取公告信息成功
#
... ...
config:
name: QX001:评分权限人员-审核问题-查看问题-权限校验42
teststeps:
- name: 19990000008提出问题
testcase: testcases/question/add_question.yml
- name: 有评分权限19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 19990000011查看待我审核
output:
- qid
api: api/app_api/question_api/audits_ireview_api.yml
extract:
qid: content.data.questions.-1.id
validate:
- eq:
- content.data.questions.-1.id
- $qid
- name: 19990000011审核问题
api: api/app_api/question_api/auditquestion_api.yml
- name: 19990000011查看问题详情
api: api/app_api/question_api/questiondetail_api.yml
teardown_hooks:
- ${teardown_hook_get_serialNo($response)}
# validate:
# - eq:
# - content.data.question.serialNo
# - $serialno
- name: 19990000011申请解决问题
api: api/app_api/question_api/applyForQuestions_api.yml
#
#- name: 19990000011查看问题详情
# api: api/app_api/question_api/questiondetail_api.yml
# validate:
# - eq:
# - content.data.question.permission
# - 42
... ...
config:
name: QX002:同级别评分权限人员-查看问题-权限校验21
# #清理数据
# teardown_hooks:
# - ${teardown_hook_clean_db()}
# - ${teardown_hook_sleep_N_secs($response,2)}
teststeps:
- name: 19990000008提出问题
testcase: testcases/question/add_question.yml
- name: 有评分权限19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 有评分权限19990000011查看待我审核
output:
- qid
api: api/app_api/question_api/audits_ireview_api.yml
extract:
qid: content.data.questions.0.id
validate:
- eq:
- content.data.questions.0.id
- $qid
#
#- name: 有评分权限18200000005审核问题
# api: api/question_api/auditquestion_api.yml
#
#- name: 同级别有评分权限18200000007登录系统
# variables:
# currtime: ${make_time()}
# uuid: ${make_uuid()}
# access_token: ''
# sign: ${make_sign($currtime, $uuid,$access_token)}
# phone: ${ENV(pfphone1)}
# testcase: testcases/login_testcases.yml
#
#- name: 同级别评分权限18200000007查看问题详情
# api: api/question_api/questiondetail_api.yml
# validate:
# - eq:
# - content.data.question.permission
# - 21
... ...
config:
name: QX003:高级别评分权限人员-查看问题-权限校验42
# #清理数据
# teardown_hooks:
# - ${teardown_hook_clean_db()}
# - ${teardown_hook_sleep_N_secs($response,2)}
teststeps:
- name: 18100000004提出问题
testcase: testcases/question/add_question.yml
- name: 有评分权限18200000005登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 有评分权限18200000005查看待我审核
output:
- qid
api: api/question_api/audits_api.yml
extract:
qid: content.data.questions.0.id
validate:
- eq:
- content.data.questions.0.id
- $qid
- name: 有评分权限18200000005审核问题
api: api/question_api/auditquestion_api.yml
- name: 高级别有评分权限18200000002登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pflevelhighphone)}
testcase: testcases/login_testcases.yml
- name: 高级别评分权限18200000002查看问题详情
api: api/question_api/questiondetail_api.yml
validate:
- eq:
- content.data.question.permission
- 42
... ...
config:
name: QX004:无评分权限人员-查看问题-权限校验21
# #清理数据
# teardown_hooks:
# - ${teardown_hook_clean_db()}
# - ${teardown_hook_sleep_N_secs($response,2)}
teststeps:
- name: 18100000004提出问题
testcase: testcases/question/add_question.yml
- name: 有评分权限18200000005登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 18200000005查看待我审核
output:
- qid
api: api/question_api/audits_api.yml
extract:
qid: content.data.questions.0.id
validate:
- eq:
- content.data.questions.0.id
- $qid
- name: 18200000005审核问题
api: api/question_api/auditquestion_api.yml
- name: 无评分权限18200000004登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(ckphone)}
testcase: testcases/login_testcases.yml
- name: 无评分权限18200000004查看问题详情
api: api/question_api/questiondetail_api.yml
validate:
- eq:
- content.data.question.permission
- 21
... ...
config:
name: QX005:无评分权限人员-查看方案-权限校验1
teststeps:
- name: 评分权限人员18200000005查看问题-审核问题
output:
- qid
testcase: testcases/permission/ques_pf_permission/QX001_pf_permission.yml
extract:
qid: content.data.questions.0.id
- name: 评分权限人员18200000005我来分析
api: api/question_api/solution_api.yml
extract:
sid: content.data.solution.id
- name: 无评分权限18200000004登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(ckphone)}
testcase: testcases/login_testcases.yml
- name: 无评分权限人员18200000004查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 1
... ...
config:
name: QX006:评分权限人员不能给自己提出的备选方案评分-权限校验1
# #清理数据
# teardown_hooks:
# - ${teardown_hook_clean_db()}
# - ${teardown_hook_sleep_N_secs($response,2)}
teststeps:
- name: 评分权限人员18200000005查看问题-审核问题
output:
- qid
testcase: testcases/permission/ques_pf_permission/QX001_pf_permission.yml
extract:
qid: content.data.questions.0.id
- name: 评分权限人员18200000005我来分析
api: api/question_api/solution_api.yml
extract:
sid: content.data.solution.id
- name: 评分权限人员18200000005查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 1
... ...
config:
name: QX007:已评分过的备选方案,同级别评分权限人员-查看方案-权限校验1
teststeps:
- name: 评分权限人员18200000005查看问题-审核问题
output:
- qid
testcase: testcases/permission/ques_pf_permission/QX001_pf_permission.yml
extract:
qid: content.data.questions.0.id
- name: 评分权限人员18200000005我来分析
api: api/question_api/solution_api.yml
extract:
sid: content.data.solution.id
- name: 有评分权限18200000002登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pflevelhighphone)}
testcase: testcases/login_testcases.yml
- name: 有评分权限18200000002查看问题详情
api: api/question_api/questiondetail_api.yml
- name: 有评分权限18200000002查看备选方案详情
output:
- sid
api: api/question_api/alternatives_api.yml
extract:
sid: content.data.solutions.0.id
#- name: 有评分权限18200000002查看方案权限
# api: api/question_api/solutiondetails_api.yml
- name: 有评分权限18200000002评分
api: api/question_api/scoreanalyze_api.yml
- name: 同级别有评分权限18200001002登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pflevelhighphone1)}
testcase: testcases/login_testcases.yml
- name: 同级别有评分权限18200001002查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 1
... ...
config:
name: QX008:已评分过的备选方案,高级别评分权限人员-查看方案-权限校验2
teststeps:
- name: 评分权限人员18200000005查看问题-审核问题
output:
- qid
testcase: testcases/permission/ques_pf_permission/QX001_pf_permission.yml
extract:
qid: content.data.questions.0.id
- name: 评分权限人员18200000005我来分析
api: api/question_api/solution_api.yml
extract:
sid: content.data.solution.id
- name: 有评分权限18200000007登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pfphone1)}
testcase: testcases/login_testcases.yml
- name: 有评分权限18200000007查看问题详情
api: api/question_api/questiondetail_api.yml
- name: 有评分权限18200000007查看备选方案详情
output:
- sid
api: api/question_api/alternatives_api.yml
extract:
sid: content.data.solutions.0.id
- name: 有评分权限18200000007评分
api: api/question_api/scoreanalyze_api.yml
- name: 高级别有评分权限18200000002登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pflevelhighphone)}
testcase: testcases/login_testcases.yml
- name: 高级别有评分权限18200000002查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 2
... ...
config:
name: QX009:未评分过的备选方案,有评分权限人员-查看方案-权限校验2
teststeps:
- name: 评分权限人员18200000005查看问题-审核问题
output:
- qid
testcase: testcases/permission/ques_pf_permission/QX001_pf_permission.yml
extract:
qid: content.data.questions.0.id
- name: 评分权限人员18200000005我来分析
api: api/question_api/solution_api.yml
extract:
sid: content.data.solution.id
- name: 有评分权限18200000007登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(pfphone1)}
testcase: testcases/login_testcases.yml
- name: 有评分权限人员18200000007查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 2
... ...
config:
name: QX010:解决权限主导人不能给自己提出的解决方案评分-权限校验1
teststeps:
- name: 解决权限人员18200000006解决问题,主导人是18200000003
testcase: testcases/question/solution_question.yml
extract:
qid: content.data.questions.0.id
- name: 解决权限人员18200000003登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(jjlevelhighphone)}
testcase: testcases/login_testcases.yml
- name: 解决权限人员18200000003查看问题详情
output:
- sid
api: api/question_api/questiondetail_api.yml
extract:
sid: content.data.question.solutions.0.id
- name: 解决权限人员18200000003查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 1
... ...
config:
name: QX011:解决权限人员可以给自己上传的解决方案评分-权限校验2
teststeps:
- name: 解决权限人员18200000006解决问题,主导人是18200000003
testcase: testcases/question/solution_question.yml
extract:
qid: content.data.questions.0.id
- name: 解决权限人员18200000006登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(jjphone)}
testcase: testcases/login_testcases.yml
- name: 解决权限人员18200000006查看问题详情
output:
- sid
api: api/question_api/questiondetail_api.yml
extract:
sid: content.data.question.solutions.0.id
- name: 解决权限人员18200000006查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 2
... ...
config:
name: QX012:与解决权限人员同级别的人查看解决方案-权限校验1
teststeps:
- name: 解决权限人员18200000006解决问题,主导人是18200000003
testcase: testcases/question/solution_question.yml
extract:
qid: content.data.questions.0.id
- name: 解决权限人员18200001006登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(jjlevelequalphone)}
testcase: testcases/login_testcases.yml
- name: 解决权限人员18200001006查看问题详情
output:
- sid
api: api/question_api/questiondetail_api.yml
extract:
sid: content.data.question.solutions.0.id
- name: 解决权限人员18200001006查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 1
... ...
config:
name: QX013:比解决权限人员高级别的人查看解决方案-权限校验2
teststeps:
- name: 解决权限人员18200000006解决问题,主导人是18200000003
testcase: testcases/question/solution_question.yml
extract:
qid: content.data.questions.0.id
- name: 解决权限人员18200001003登录系统
variables:
currtime: ${make_time()}
uuid: ${make_uuid()}
access_token: ''
sign: ${make_sign($currtime, $uuid,$access_token)}
phone: ${ENV(jjlevelhighphone1)}
testcase: testcases/login_testcases.yml
- name: 解决权限人员18200001003查看问题详情
output:
- sid
api: api/question_api/questiondetail_api.yml
extract:
sid: content.data.question.solutions.0.id
- name: 解决权限人员18200001003查看方案权限
api: api/question_api/solutiondetails_api.yml
validate:
- eq:
- content.data.solution.permission
- 2
... ...
config:
name: 19990000008发布提问
teststeps:
- name: 无评分权限的提问人员19990000008登录系统
variables:
phone: ${ENV(wpftwphone)}
testcase: testcases/login_testcases.yml
- name: 19990000008发布提问
api: api/app_api/firstpage_api/addquestion_api.yml
varidate:
validate:
- eq:
- content.msg
- 发布成功
\ No newline at end of file
... ...
config:
name: start_testcases
#清理数据
setup_hooks:
- ${setup_hook_clean_db()}
#teststeps:
#- name: start_testcases
# api: api/app_api/login_api/auth/8_gettimestamp_api.yml
E:\mmm_auto\ability_api\testcases
\ No newline at end of file
... ...
config:
name: jxz:登录系统-查看公司悬赏任务-点击抢单
teststeps:
- name: 19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 19990000011查看公司悬赏任务
output:
- id
api: api/task_api/task/rewards/rewards_api.yml
extract:
id: content.data.tasks.0.id
validate:
- eq:
- content.data.tasks.0.id
- $id
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
- name: 19990000011点击抢单
api: api/task_api/task/rewards/submitCompete_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 抢单成功!
- name: 19990000011查看进行中的任务
api: api/task_api/task/rewards/currentTasks_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.data.task.status
- 3
- eq:
- content.msg
- 获取详情成功
... ...
config:
name: jxz:登录系统-查看公司悬赏任务-点击竞标
teststeps:
- name: 19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 19990000011查看公司悬赏任务
output:
- id
api: api/task_api/task/rewards/rewards_api.yml
extract:
id: content.data.tasks.0.id
validate:
- eq:
- content.data.tasks.0.id
- $id
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
- name: 19990000011点击竞标
api: api/task_api/task/rewards/submitCompete_1_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 已成功参与竞标,等待中标!!
- name: 19990000008登录系统
variables:
phone: ${ENV(wpftwphone)}
testcase: testcases/login_testcases.yml
- name: 19990000008查看公司悬赏任务
output:
- id
api: api/task_api/task/rewards/rewards_api.yml
extract:
id: content.data.tasks.0.id
validate:
- eq:
- content.data.tasks.0.id
- $id
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000008任务详情
output:
- uid
api: api/task_api/task/taskDetails_api.yml
extract:
uid: content.data.tasks.bidders.0.uid
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
- name: 19990000008中标
api: api/task_api/task/bidTask_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 中标成功
- name: 19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 19990000011查看公司悬赏任务
output:
- id
api: api/task_api/task/rewards/rewards_api.yml
extract:
id: content.data.tasks.0.id
validate:
- eq:
- content.data.tasks.0.id
- $id
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
- name: 19990000011查看进行中的任务
api: api/task_api/task/rewards/currentTasks_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.data.task.status
- 3
- eq:
- content.msg
- 获取详情成功
- name: 19990000011完成任务
api: api/task_api/task/taskfinishTask_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 完成成功
\ No newline at end of file
... ...
config:
name: jxz:登录系统-查看公司悬赏任务-点击抢单
teststeps:
- name: 19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 19990000011查看公司悬赏任务
output:
- id
api: api/task_api/task/rewards/rewards_api.yml
extract:
id: content.data.tasks.0.id
validate:
- eq:
- content.data.tasks.0.id
- $id
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
- name: 19990000011点击抢单
api: api/task_api/task/rewards/submitCompete_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 抢单成功!
- name: 19990000011查看进行中的任务
api: api/task_api/task/rewards/currentTasks_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.data.task.status
- 3
- eq:
- content.msg
- 获取详情成功
... ...
config:
name: jxz:登录系统-查看公司悬赏任务-点击抢单
teststeps:
- name: 19990000011登录系统
variables:
phone: ${ENV(pfphone)}
testcase: testcases/login_testcases.yml
- name: 19990000011查看公司悬赏任务
output:
- id
api: api/task_api/task/rewards/rewards_api.yml
extract:
id: content.data.tasks.0.id
validate:
- eq:
- content.data.tasks.0.id
- $id
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取详情成功
- name: 19990000011点击抢单
api: api/task_api/task/rewards/submitCompete_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 抢单成功!
- name: 19990000011查看进行中的任务
api: api/task_api/task/rewards/currentTasks_0_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 获取成功
- name: 19990000011任务详情
api: api/task_api/task/taskDetails_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.data.task.status
- 3
- eq:
- content.msg
- 获取详情成功
- name: 19990000011完成任务
api: api/task_api/task/taskfinishTask_api.yml
validate:
- eq:
- content.code
- 0
- eq:
- content.msg
- 完成成功
\ No newline at end of file
... ...