1. 新增用户简明教程 2. 新增安装部署教程

This commit is contained in:
苦叶子 2018-05-21 10:50:49 +08:00
parent a36ad7b59e
commit 4448acb0e3
3 changed files with 366 additions and 160 deletions

View File

@ -2,8 +2,9 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c5ae474a-e2fe-4b02-bccd-d8be882227ae" name="Default" comment="">
<change beforePath="" afterPath="$PROJECT_DIR$/User Guide/User Guide/使用简明教程.md" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change beforePath="$PROJECT_DIR$/app/api/task.py" afterPath="$PROJECT_DIR$/app/api/task.py" />
<change beforePath="$PROJECT_DIR$/README.md" afterPath="$PROJECT_DIR$/README.md" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
@ -13,124 +14,107 @@
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.32900432">
<split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="autoline.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/static/js/autoline.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="208" column="40" lean-forward="false" selection-start-line="208" selection-start-column="40" selection-end-line="208" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="runner.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/utils/runner.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="451">
<caret line="98" column="22" lean-forward="false" selection-start-line="98" selection-start-column="22" selection-end-line="98" selection-end-column="22" />
<folding>
<element signature="e#94#103#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="630">
<caret line="42" column="0" lean-forward="true" selection-start-line="42" selection-start-column="0" selection-end-line="42" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</file>
</leaf>
</split-first>
<split-second>
<leaf>
<file leaf-file-name="task.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/api/task.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="278">
<caret line="83" column="13" lean-forward="false" selection-start-line="83" selection-start-column="13" selection-end-line="83" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="task_list.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/templates/task_list.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2">
<caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="task.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/templates/task.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1050">
<caret line="70" column="17" lean-forward="false" selection-start-line="70" selection-start-column="17" selection-end-line="70" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="version.txt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/version.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="6" lean-forward="true" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="history.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/history.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="60">
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="14" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="task.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/static/js/task.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="27" column="1" lean-forward="true" selection-start-line="27" selection-start-column="1" selection-end-line="27" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="manage.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/manage.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="417">
<caret line="37" column="15" lean-forward="true" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</split-second>
</splitter>
<leaf>
<file leaf-file-name="task.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/api/task.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="428">
<caret line="93" column="37" lean-forward="false" selection-start-line="93" selection-start-column="37" selection-end-line="93" selection-end-column="37" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="使用简明教程.md" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/User Guide/User Guide/使用简明教程.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="589">
<caret line="204" column="0" lean-forward="true" selection-start-line="204" selection-start-column="0" selection-end-line="204" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="README.md" pinned="false" current-in-tab="false">
<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="450">
<caret line="30" column="0" lean-forward="true" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="task_list.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/templates/task_list.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2">
<caret line="25" column="0" lean-forward="false" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="task.html" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/templates/task.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1050">
<caret line="70" column="17" lean-forward="false" selection-start-line="70" selection-start-column="17" selection-end-line="70" selection-end-column="17" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="version.txt" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/version.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="6" lean-forward="true" selection-start-line="0" selection-start-column="6" selection-end-line="0" selection-end-column="6" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="history.md" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/history.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="60">
<caret line="4" column="0" lean-forward="true" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="14" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="task.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/static/js/task.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="27" column="1" lean-forward="true" selection-start-line="27" selection-start-column="1" selection-end-line="27" selection-end-column="1" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="manage.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/manage.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="417">
<caret line="37" column="15" lean-forward="true" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
@ -197,8 +181,8 @@
<option value="$PROJECT_DIR$/version.txt" />
<option value="$PROJECT_DIR$/manage.py" />
<option value="$PROJECT_DIR$/history.md" />
<option value="$PROJECT_DIR$/README.md" />
<option value="$PROJECT_DIR$/app/api/task.py" />
<option value="$PROJECT_DIR$/README.md" />
</list>
</option>
</component>
@ -268,6 +252,17 @@
<item name="app" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="AutoLine" type="b2602c69:ProjectViewProjectNode" />
<item name="AutoLine" type="462c0819:PsiDirectoryNode" />
<item name="User Guide" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="AutoLine" type="b2602c69:ProjectViewProjectNode" />
<item name="AutoLine" type="462c0819:PsiDirectoryNode" />
<item name="User Guide" type="462c0819:PsiDirectoryNode" />
<item name="User Guide" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
@ -371,7 +366,7 @@
<frame x="3" y="23" width="1379" height="802" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16243654" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23930384" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
@ -401,14 +396,6 @@
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/app/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-256">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/utils/process.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
@ -628,14 +615,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/static/js/autoline.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="208" column="40" lean-forward="false" selection-start-line="208" selection-start-column="40" selection-end-line="208" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/static/js/project.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="347">
@ -708,27 +687,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/utils/runner.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="451">
<caret line="98" column="22" lean-forward="false" selection-start-line="98" selection-start-column="22" selection-end-line="98" selection-end-column="22" />
<folding>
<element signature="e#94#103#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="630">
<caret line="42" column="0" lean-forward="true" selection-start-line="42" selection-start-column="0" selection-end-line="42" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/history.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
@ -740,14 +698,54 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/utils/runner.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="451">
<caret line="98" column="22" lean-forward="false" selection-start-line="98" selection-start-column="22" selection-end-line="98" selection-end-column="22" />
<folding>
<element signature="e#94#103#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/static/js/autoline.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="405">
<caret line="208" column="40" lean-forward="false" selection-start-line="208" selection-start-column="40" selection-end-line="208" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/api/task.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="278">
<caret line="83" column="13" lean-forward="false" selection-start-line="83" selection-start-column="13" selection-end-line="83" selection-end-column="13" />
<state relative-caret-position="428">
<caret line="93" column="37" lean-forward="false" selection-start-line="93" selection-start-column="37" selection-end-line="93" selection-end-column="37" />
<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="450">
<caret line="30" column="0" lean-forward="true" selection-start-line="30" selection-start-column="0" selection-end-line="30" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/User Guide/User Guide/使用简明教程.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="SPLIT">
<first_editor relative-caret-position="589">
<caret line="204" column="0" lean-forward="true" selection-start-line="204" selection-start-column="0" selection-end-line="204" selection-end-column="0" />
<folding />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>

View File

@ -23,6 +23,10 @@
AutoLine开源平台是一个开源自动化测试解决方案基于RobotFramework进行二次开发支持RobotFramework几乎所有的库。
用户简明教程: [简明教程](https://github.com/small99/AutoLine/blob/master/User%20Guide/User%20Guide/使用简明教程.md)
安装部署教程: [安装教程](https://github.com/small99/AutoLine/blob/master/User%20Guide/User%20Guide/安装部署教程.md)
## 为什么要开发AutoLine
1. 为中小企业提供一个好用的自动化测试解决方案

View File

@ -0,0 +1,204 @@
# AutoLine简明教程
<!-- TOC -->
- [AutoLine简明教程](#autoline简明教程)
- [基本的使用过程](#基本的使用过程)
- [AutoLine支持哪些关键字](#autoline支持哪些关键字)
- [Cron表达式说明](#cron表达式说明)
- [常用cron表达式](#常用cron表达式)
- [公众号](#公众号)
<!-- /TOC -->
## 基本的使用过程
AutoLine自动化测试基本过程为:
1. 创建产品
2. 创建项目
3. 创建对象集,并创建对象
4. 创建套件
5. 创建用例
6. 创建步骤
7. 重复3-6
8. 运行项目
9. 查看报告
使用AutoLine开源平台进行自动化测试的详细步骤为
1. 在"产品管理"下新增产品
![创建产品](../images/create_product.png)
2. 在"项目管理"下新增测试项目
![创建项目](../images/create_project.png)
3. 选择2中创建的项目准备进行规划测试项目
![选择项目](../images/select_project.png)
4. 在项目节点上"右击"鼠标,创建对象集
![创建对象集](../images/create_objects.png)
- 新增环境相关参数数据
- 新增元素定位数据
- 新增百度搜索关键词数据
如下图:
![数据分类](../images/create_object_category.png)
5. 在对象集节点上"右击"鼠标,创建对象
![创建对象](../images/create_object.png)
在4中的各对象集下创建相应的对象用于参数化如下图
![对象](../images/create_elements.png)
下面我们看下各对象的细节截图:
![](../images/url.png)
![](../images/browser.png)
![](../images/kw.png)
![](../images/btn.png)
![](../images/word.png)
![](../images/title.png)
6. 在项目节点上"右击"鼠标,创建套件集
![创建套件](../images/create_suite.png)
- 新增初始化套件
- 新增测试套件
- 新增清理套件
创建完成后如图:
![create_suite_detail](../images/create_suite_detail.png)
每个套件的属性如下图:
![](../images/init_suite.png)
![](../images/search_suite.png)
![](../images/clear_suite.png)
7. 在套件节点上"右击"鼠标,新增测试用例
![case](../images/add_case.png)
用例新增完成如图所示
![cases](../images/add_cases.png)
8. 在用例节点上"右击"鼠标,新增测试步骤,即关键字步骤
![add_step](../images/add_step.png)
详细的step说明
![step_detail](../images/step_detail.png)
这里以web测试来说明我们用SeleniumLibrary库提供的关键字
![seleniumlibrary](../images/selenniumlibrary.png)
完整的用例步骤如下:
![step_list](../images/step_list.png)
下面我们看一下各步骤的详细数据项截图:
![open browser](../images/open_browser.png)
![](../images/max.png)
![](../images/keyword.png)
![](../images/sleep.png)
![](../images/snapshot.png)
![](../images/click.png)
![](../images/get_title.png)
![](../images/assert.png)
9. 在项目节点上"右击"鼠标,选择运行
![](../images/run.png)
10. 在项目节点上"右击"鼠标,选择查看任务
![查看任务](../images/task_status.png)
11. 查看报告
![报告](../images/report.png)
## AutoLine支持哪些关键字
当前已经默认集成了RobotFramework一下关键字关键字的用法完全同RobotFramework
- 标准库
1. BuiltIn
2. Collections
3. DateTime
4. Dialogs
5. OperationSystem
6. Process
7. Screenshot
8. String
9. Telnet
10. XML
RobotFramework标准库关键字文档
http://robotframework.org/robotframework/#standard-libraries
- 第三方库
1. SeleniumLibrary
作用: 支持web UI测试
关键字文档: http://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
2. Appium
作用: 支持APP移动端UI测试android&ios
关键字文档: http://serhatbolsu.github.io/robotframework-appiumlibrary/AppiumLibrary.html
3. Requests
功能: 支持HTTP接口测试
关键字文档: https://github.com/bulkan/robotframework-requests/#readme
## Cron表达式说明
在创建项目时需要输入cron表达式以实现定时的计划任务cron表达式格式同jenkins格式为
> minute, hour, day, month, day_of_week
默认值为: * * * * *
minute - 用于配置分钟
hour - 用于配置小时
day - 用于配置天
month - 用于配置月
day_of_week - 用于配置周里的天数
### 常用cron表达式
*/30 * * ? 每30分钟执行一次
0 12 * * ? 每天中午12点触发
15 10 * * ? 每天上午10:15触发
15 10 L * ? 每月最后一日的上午10:15触发
15 10 ? * 6L 每月的最后一个星期五上午10:15触发
0 1 * * ? 每天凌晨1点执行一次
更多的cron表达式用法 请直接看官方文档吧,自己去找文档
## 公众号
扫一扫关注公众号,获取平台第一手信息
![](../../app/static/images/deeptest.jpg)