Skip to content

Commit

Permalink
增加新版本的说明文档
Browse files Browse the repository at this point in the history
  • Loading branch information
ChenSen5 committed Mar 31, 2017
1 parent c5930bd commit af21f67
Showing 1 changed file with 31 additions and 20 deletions.
51 changes: 31 additions & 20 deletions README.md
@@ -1,23 +1,28 @@
## 环境

> 环境:httpclient+jsonpath+testng+reportng(jdk8)
> 环境:httpclient+jsonpath+testng+ExtentReport(jdk8)
> demo中的用例以百度的api store为例(具体查看:[百度api商城](http://apistore.baidu.com/)
## 运行
1. IDE工具直接执行testng.xml(以testng形式运行)即可(ide工具需要先装好testng插件)。
2. maven执行:mvn test.

## 执行报告查看
1. testng.xml执行可视化报告:${workspace}/test-output/html/index.html(IDE工具需要设置testng全局监听器配置:org.uncommons.reportng.HTMLReporter)
2. maven执行报告:${workspace}/target/surefire-reports/html/index.html
1. testng.xml执行可视化报告:${workspace}/test-output/index.html
2. maven执行报告:${workspace}/target/test-output/index.html

## api-config.xml配置

> api请求根路径、请求头及初始化参数值可以在api-config上进行配置。
rootUrl: 必须的配置,api的根路径,在调用api时用于拼接,配置后,会在自动添加到用例中的url的前缀中。
headers: 非必须配置,配置后在调用api时会将对应的name:value值设置到所有请求的请求头中header-name:header-value
params:非必须配置,公共参数,通常放置初始化配置数据,所有用例执行前,会将params下所有的param配置进行读取并存储到公共参数池中,在用例执行时,使用特定的关键字(${param_name})可以获取。具体使用请参考下面的高级用法。
- rootUrl:
必须的配置,api的根路径,在调用api时用于拼接,配置后,会在自动添加到用例中的url的前缀中。
- headers:
非必须配置,配置后在调用api时会将对应的name:value值设置到所有请求的请求头中header-name:header-value
- params:
非必须配置,公共参数,通常放置初始化配置数据,所有用例执行前,会将params下所有的param配置进行读取并存储到公共参数池中,在用例执行时,使用特定的关键字(${param_name})可以获取。具体使用请参考下面的高级用法。
- project_name:
项目名称,会在html报告中使用
```
<root>
<rootUrl>http://apis.baidu.com</rootUrl>
Expand All @@ -28,29 +33,35 @@ params:非必须配置,公共参数,通常放置初始化配置数据,
<params>
<param name="param1" value="value1"></param>
</params>
<project_name>接口自动化测试报告demo</project_name>
</root>
```
## api用例(case/api-data.xls)

> api请求用例具体数据。除表头外,一行代表一个api用例。执行时会依次从左到右,从上到下执行。
- run:标记为‘Y’时,该行数据会被读取执行。
- description:该用例描述,在报告中提现。
- method:该api测试用例的请求方法(暂只支持get,post)。
- url:该api测试用例的请求路径。

说明:
若配置文件(api-config.xml)中rootUrl为"http://apis.baidu.com" ,url的值为:“/apistore/aqiservice/citylist”,框架执行的时候会根据配置文件中rootUrl进行自动拼接为:http://apis.baidu.com/apistore/aqiservice/citylist
- run:
标记为‘Y’时,该行数据会被读取执行。
- description:
该用例描述,在报告中提现。
- method:
该api测试用例的请求方法(暂只支持get,post)。上传文件时请填写为upload
- url:
该api测试用例的请求路径。
- param:
请求方法为post时,body的内容(暂只支持json,不支持xml)。上传时请类似为:{"param1":"valu1","file":"__bodyfile(文件相对路径)"}
- verify:
对于api请求response数据的验证(可使用jsonPath进行校验)。校验多个使用“;”进行隔开。
- save:
使用jsonPath对response的数据进行提取存储。

- 说明:
1. 若配置文件(api-config.xml)中rootUrl为"http://apis.baidu.com" ,url的值为:“/apistore/aqiservice/citylist”,框架执行的时候会根据配置文件中rootUrl进行自动拼接为:http://apis.baidu.com/apistore/aqiservice/citylist
若填写url填写为http作为前缀的值如:“http://www.baidu.com/s?w=test” 将不会进行拼接。
- param:请求方法为post时,body的内容(暂只支持json,不支持xml)。
- verify:对于api请求response数据的验证(可使用jsonPath进行校验)。校验多个使用“;”进行隔开。

说明:
若verify填写值为:“$.errorCode=0;$.errorMessage=success”,则会校验返回值中$.errorCode的值为0,$.errorMessage的值为success,只要有一个校验错误,后面的其他校验项将停止校验。
- save:使用jsonPath对response的数据进行提取存储。
2. 若verify填写值为:“$.errorCode=0;$.errorMessage=success”,则会校验返回值中$.errorCode的值为0,$.errorMessage的值为success,只要有一个校验错误,后面的其他校验项将停止校验。

说明:
若save值为:“id=$.userId;age=$.age”,接口实际返回内容为:“{"username":"chenwx","userId":"1000","age":"18"}”,则接口执行完成后,会将公共参数id的值存储为1000,age存储为18。公共参数可在后面的用例中进行使用。具体使用方法见下方高级用法。
3. 若save值为:“id=$.userId;age=$.age”,接口实际返回内容为:“{"username":"chenwx","userId":"1000","age":"18"}”,则接口执行完成后,会将公共参数id的值存储为1000,age存储为18。公共参数可在后面的用例中进行使用。具体使用方法见下方高级用法。

## 高级用法

Expand Down

0 comments on commit af21f67

Please sign in to comment.