修改README.md
This commit is contained in:
parent
572fcb39c3
commit
4c82dff96b
|
@ -2,14 +2,10 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="09a4aeb4-cd0a-454b-9878-fc6edee9400a" name="Default" comment="">
|
<list default="true" id="09a4aeb4-cd0a-454b-9878-fc6edee9400a" name="Default" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/common/pageObject.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/page/searchPage.py" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/testcase/test_baiduSearch.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/common/sendEmail.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/sendEmail.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/common/sendEmail.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/sendEmail.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/page/LoginPage.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/url.py" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/run.py" beforeDir="false" afterPath="$PROJECT_DIR$/run.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/testcase/test_baidu.py" beforeDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="TRACKING_ENABLED" value="true" />
|
<option name="TRACKING_ENABLED" value="true" />
|
||||||
|
@ -38,8 +34,8 @@
|
||||||
<file leaf-file-name="run.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="run.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/run.py">
|
<entry file="file://$PROJECT_DIR$/run.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-95">
|
<state relative-caret-position="393">
|
||||||
<caret line="7" column="25" lean-forward="true" selection-start-line="7" selection-start-column="25" selection-end-line="7" selection-end-column="25" />
|
<caret line="31" lean-forward="true" selection-start-line="31" selection-end-line="31" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#15#0" expanded="true" />
|
<element signature="e#0#15#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
@ -47,11 +43,35 @@
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file leaf-file-name="sendEmail.py" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/sendEmail.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-133">
|
||||||
|
<caret line="8" column="9" selection-start-line="8" selection-start-column="9" selection-end-line="8" selection-end-column="9" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#48#57#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="README.md" pinned="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||||
|
<state split_layout="SPLIT">
|
||||||
|
<first_editor relative-caret-position="-165">
|
||||||
|
<caret line="30" column="1" selection-start-line="30" selection-start-column="1" selection-end-line="30" selection-end-column="1" />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
<file leaf-file-name="searchPage.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="searchPage.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/page/searchPage.py">
|
<entry file="file://$PROJECT_DIR$/page/searchPage.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="380">
|
<state relative-caret-position="221">
|
||||||
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
|
<caret line="20" column="51" selection-start-line="20" selection-start-column="51" selection-end-line="20" selection-end-column="51" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#0#53#0" expanded="true" />
|
<element signature="e#0#53#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
@ -62,8 +82,8 @@
|
||||||
<file leaf-file-name="test_baiduSearch.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="test_baiduSearch.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/testcase/test_baiduSearch.py">
|
<entry file="file://$PROJECT_DIR$/testcase/test_baiduSearch.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-173">
|
<state relative-caret-position="-671">
|
||||||
<caret line="34" column="27" selection-start-line="34" selection-start-column="27" selection-end-line="34" selection-end-column="27" />
|
<caret line="28" column="65" lean-forward="true" selection-start-line="28" selection-start-column="65" selection-end-line="28" selection-end-column="65" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#15#56#0" expanded="true" />
|
<element signature="e#15#56#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
@ -71,11 +91,6 @@
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="2019-02-26 10_45_51report.html" pinned="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/report/2019-02-26 10_45_51report.html">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
</leaf>
|
</leaf>
|
||||||
</component>
|
</component>
|
||||||
<component name="FileTemplateManagerImpl">
|
<component name="FileTemplateManagerImpl">
|
||||||
|
@ -135,13 +150,14 @@
|
||||||
<option value="$PROJECT_DIR$/imagetobase64.py" />
|
<option value="$PROJECT_DIR$/imagetobase64.py" />
|
||||||
<option value="$PROJECT_DIR$/testcase/test.py" />
|
<option value="$PROJECT_DIR$/testcase/test.py" />
|
||||||
<option value="$PROJECT_DIR$/page/LoginPage.py" />
|
<option value="$PROJECT_DIR$/page/LoginPage.py" />
|
||||||
<option value="$PROJECT_DIR$/README.md" />
|
|
||||||
<option value="$PROJECT_DIR$/common/pageObject.py" />
|
<option value="$PROJECT_DIR$/common/pageObject.py" />
|
||||||
<option value="$PROJECT_DIR$/page/searchPage.py" />
|
|
||||||
<option value="$PROJECT_DIR$/testcase/test_baidu.py" />
|
<option value="$PROJECT_DIR$/testcase/test_baidu.py" />
|
||||||
<option value="$PROJECT_DIR$/common/sendEmail.py" />
|
|
||||||
<option value="$PROJECT_DIR$/common/url.py" />
|
<option value="$PROJECT_DIR$/common/url.py" />
|
||||||
|
<option value="$PROJECT_DIR$/page/searchPage.py" />
|
||||||
|
<option value="$PROJECT_DIR$/testcase/test_baiduSearch.py" />
|
||||||
<option value="$PROJECT_DIR$/run.py" />
|
<option value="$PROJECT_DIR$/run.py" />
|
||||||
|
<option value="$PROJECT_DIR$/common/sendEmail.py" />
|
||||||
|
<option value="$PROJECT_DIR$/README.md" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
@ -171,26 +187,6 @@
|
||||||
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="Automated-Test" type="462c0819:PsiDirectoryNode" />
|
<item name="Automated-Test" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
<path>
|
|
||||||
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="Automated-Test" type="462c0819:PsiDirectoryNode" />
|
|
||||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
|
||||||
</path>
|
|
||||||
<path>
|
|
||||||
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="Automated-Test" type="462c0819:PsiDirectoryNode" />
|
|
||||||
<item name="page" type="462c0819:PsiDirectoryNode" />
|
|
||||||
</path>
|
|
||||||
<path>
|
|
||||||
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="Automated-Test" type="462c0819:PsiDirectoryNode" />
|
|
||||||
<item name="report" type="462c0819:PsiDirectoryNode" />
|
|
||||||
</path>
|
|
||||||
<path>
|
|
||||||
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
|
||||||
<item name="Automated-Test" type="462c0819:PsiDirectoryNode" />
|
|
||||||
<item name="testcase" type="462c0819:PsiDirectoryNode" />
|
|
||||||
</path>
|
|
||||||
<path>
|
<path>
|
||||||
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
<item name="Automated-Test" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||||
|
@ -411,8 +407,8 @@
|
||||||
<window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
|
||||||
<window_info anchor="bottom" id="Version Control" order="8" />
|
<window_info anchor="bottom" id="Version Control" order="8" />
|
||||||
<window_info anchor="bottom" id="Python Console" order="10" />
|
<window_info anchor="bottom" id="Python Console" order="10" />
|
||||||
<window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.3292683" />
|
<window_info anchor="bottom" id="Run" order="2" weight="0.3292683" />
|
||||||
<window_info anchor="bottom" id="Terminal" order="11" weight="0.32752612" />
|
<window_info anchor="bottom" id="Terminal" order="11" visible="true" weight="0.32752612" />
|
||||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.261924" />
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.261924" />
|
||||||
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
||||||
<window_info anchor="right" id="Database" order="3" />
|
<window_info anchor="right" id="Database" order="3" />
|
||||||
|
@ -441,9 +437,6 @@
|
||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/common/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/__init__.py">
|
<entry file="file://$PROJECT_DIR$/__init__.py">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
|
@ -495,16 +488,6 @@
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/report/2019-02-19-14-47-46result.html" />
|
<entry file="file://$PROJECT_DIR$/report/2019-02-19-14-47-46result.html" />
|
||||||
<entry file="file://$PROJECT_DIR$/README.md">
|
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
|
||||||
<state split_layout="SPLIT">
|
|
||||||
<first_editor relative-caret-position="-22">
|
|
||||||
<caret line="40" column="96" selection-start-line="40" selection-start-column="96" selection-end-line="40" selection-end-column="96" />
|
|
||||||
</first_editor>
|
|
||||||
<second_editor />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/page/LoginPage.py">
|
<entry file="file://$PROJECT_DIR$/page/LoginPage.py">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
|
@ -532,16 +515,6 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/common/sendEmail.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="506">
|
|
||||||
<caret line="48" selection-start-line="48" selection-end-line="48" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#47#56#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/HTMLTestRunner.py">
|
<entry file="file://$PROJECT_DIR$/HTMLTestRunner.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="5700">
|
<state relative-caret-position="5700">
|
||||||
|
@ -552,38 +525,61 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/run.py">
|
<entry file="file://$PROJECT_DIR$/report/2019-02-26 10_45_51report.html">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
<state relative-caret-position="-95">
|
|
||||||
<caret line="7" column="25" lean-forward="true" selection-start-line="7" selection-start-column="25" selection-end-line="7" selection-end-column="25" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#15#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/page/searchPage.py">
|
<entry file="file://$PROJECT_DIR$/report/2019-02-26 10_49_31report.html">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
<state relative-caret-position="380">
|
|
||||||
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#0#53#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/testcase/test_baiduSearch.py">
|
<entry file="file://$PROJECT_DIR$/testcase/test_baiduSearch.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-173">
|
<state relative-caret-position="-671">
|
||||||
<caret line="34" column="27" selection-start-line="34" selection-start-column="27" selection-end-line="34" selection-end-column="27" />
|
<caret line="28" column="65" lean-forward="true" selection-start-line="28" selection-start-column="65" selection-end-line="28" selection-end-column="65" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#15#56#0" expanded="true" />
|
<element signature="e#15#56#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/report/2019-02-26 10_45_51report.html">
|
<entry file="file://$PROJECT_DIR$/page/searchPage.py">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="221">
|
||||||
|
<caret line="20" column="51" selection-start-line="20" selection-start-column="51" selection-end-line="20" selection-end-column="51" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#53#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/run.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="393">
|
||||||
|
<caret line="31" lean-forward="true" selection-start-line="31" selection-end-line="31" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#0#15#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/sendEmail.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-133">
|
||||||
|
<caret line="8" column="9" selection-start-line="8" selection-start-column="9" selection-end-line="8" selection-end-column="9" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#48#57#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||||
|
<state split_layout="SPLIT">
|
||||||
|
<first_editor relative-caret-position="-165">
|
||||||
|
<caret line="30" column="1" selection-start-line="30" selection-start-column="1" selection-end-line="30" selection-end-column="1" />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
34
README.md
34
README.md
|
@ -1,8 +1,8 @@
|
||||||
# Automated-Test
|
# Automated-Test
|
||||||
页面自动化测试框架
|
## Web自动化测试框架
|
||||||
|
|
||||||
测试框架:
|
### 测试框架:
|
||||||
python3+Selenium+unittest自动化UI测试框架
|
python3+Selenium+unittest+HTMLTestRunner+pageObject Web自动化测试框架
|
||||||
|
|
||||||
(selenium+unittest搭建的WebUI自动化测试框架)
|
(selenium+unittest搭建的WebUI自动化测试框架)
|
||||||
|
|
||||||
|
@ -12,35 +12,41 @@ python3+Selenium+unittest自动化UI测试框架
|
||||||
测试代码托管平台:GitHub
|
测试代码托管平台:GitHub
|
||||||
通过主从服务器执行测试
|
通过主从服务器执行测试
|
||||||
|
|
||||||
测试代码结构:
|
### 测试代码结构:
|
||||||
|
|
||||||
![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/structure.png)
|
![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/structure.png)
|
||||||
|
|
||||||
> common文件夹存放公有元素,如url,测试报告发送邮件地址,使用信息等;
|
* common文件夹存放公有元素,如url,测试报告发送邮件地址,使用信息等;
|
||||||
|
|
||||||
> file文件夹存放测试过程中需要使用的文件,如图片,txt,zip文件等
|
* file文件夹存放测试过程中需要使用的文件,如图片,txt,zip文件等
|
||||||
|
|
||||||
> page文件夹用于存放测试过程中需要使用的页面元素
|
* page文件夹用于存放测试过程中需要使用的页面元素
|
||||||
|
|
||||||
> report文件夹用于存放测试生成的测试报告
|
* report文件夹用于存放测试生成的测试报告
|
||||||
|
|
||||||
> testcase文件夹中存放测试用例
|
* testcase文件夹中存放测试用例
|
||||||
|
|
||||||
> HTMLTestRunner.py是将测试结果生成为html版的测试报告的文件
|
* HTMLTestRunner.py是将测试结果生成为html版的测试报告的文件
|
||||||
|
|
||||||
> run.py 执行run.py文件可以执行全部测试用例
|
* run.py 执行run.py文件可以执行全部测试用例
|
||||||
|
|
||||||
生成的测试报告例子如下所示
|
###生成的测试报告例子如下所示
|
||||||
|
|
||||||
![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/report.png)
|
![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/report.png)
|
||||||
|
|
||||||
|
###发送邮件如下所示:
|
||||||
调用common中的sendEmail,向指定邮箱发送最新的测试报告文件
|
调用common中的sendEmail,向指定邮箱发送最新的测试报告文件
|
||||||
|
|
||||||
发送邮件如下所示:
|
|
||||||
|
|
||||||
![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/email.jpg)
|
![](https://raw.githubusercontent.com/linyuli861/Automated-Test/master/z-README-image/email.jpg)
|
||||||
|
|
||||||
|
|
||||||
|
###PageObject设计模式
|
||||||
|
由于Web页面自动化测试的过程中会存在许多重复的元素,且很多Web页面测试的元素值不稳定,经常变更,
|
||||||
|
为了使得Web页面自动化测试的代码更具有健壮性,因此使用PageObject设计模式,
|
||||||
|
将web自动化测试的测试用例和测试用例中需要使用到的元素解耦。
|
||||||
|
|
||||||
|
*解耦后的代码方便修改,增强了自动化测试代码的复用性。*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,13 @@
|
||||||
# email:3381350680@qq.com password:abc123456
|
# email:3381350680@qq.com password:abc123456
|
||||||
|
"""
|
||||||
|
使用一个邮箱向另一个邮箱发送测试报告的html文件,这里需要对发送邮件的邮箱进行设置,获取邮箱授权码。
|
||||||
|
username=“发送邮件的邮箱”, password=“邮箱授权码”
|
||||||
|
这里要特别注意password不是邮箱密码而是邮箱授权码。
|
||||||
|
|
||||||
|
mail_server = "发送邮箱的服务器地址"
|
||||||
|
这里常用的有 qq邮箱——"stmp.qq.com", 163邮箱——"stmp.163.com"
|
||||||
|
其他邮箱可自行百度
|
||||||
|
"""
|
||||||
import os
|
import os
|
||||||
import smtplib
|
import smtplib
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
|
|
17
run.py
17
run.py
|
@ -19,12 +19,13 @@ if __name__ == '__main__':
|
||||||
now = time.strftime("%Y-%m-%d %H_%M_%S") # 报告生成时间
|
now = time.strftime("%Y-%m-%d %H_%M_%S") # 报告生成时间
|
||||||
test_reports_address = '../report' # 测试报告存放位置
|
test_reports_address = '../report' # 测试报告存放位置
|
||||||
filename = '../report/' + now + 'report.html' # 设置报告文件名
|
filename = '../report/' + now + 'report.html' # 设置报告文件名
|
||||||
f = open(filename, 'wb')
|
fp = open(filename, 'wb')
|
||||||
runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=u'Web自动化测试', description=u'详细测试结果如下:')
|
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'Web自动化测试', description=u'详细测试结果如下:')
|
||||||
runner.run(cases)
|
runner.run(cases)
|
||||||
f.close()
|
fp.close()
|
||||||
# time.sleep(6)
|
# 向指定邮箱发送测试报告的html文件
|
||||||
# # 查找最新生成的测试报告地址
|
time.sleep(6)
|
||||||
# new_report_addr = SendEmail().acquire_report_address(test_reports_address)
|
# 查找最新生成的测试报告地址
|
||||||
# # 自动发送邮件
|
new_report_addr = SendEmail().acquire_report_address(test_reports_address)
|
||||||
# SendEmail().send_email(new_report_addr)
|
# 自动发送邮件
|
||||||
|
SendEmail().send_email(new_report_addr)
|
||||||
|
|
Loading…
Reference in New Issue