提交 5bcb21a8 authored 作者: 黄承天's avatar 黄承天

数据结构改动:测试步骤的断言改为集合形式 ;并重新定义了断言的数据结构和判断机制。(补充更新)

上级 36e96fdd
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</parent> </parent>
<groupId>com.zjty</groupId> <groupId>com.zjty</groupId>
<artifactId>automated-testing</artifactId> <artifactId>automated-testing</artifactId>
<version>0.0.5-SNAPSHOT</version> <version>0.0.6-SNAPSHOT</version>
<name>automated-testing</name> <name>automated-testing</name>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
......
package com.zjty.automatedtesting.pojo.test; package com.zjty.automatedtesting.pojo.test;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
......
...@@ -14,13 +14,13 @@ import java.util.List; ...@@ -14,13 +14,13 @@ import java.util.List;
@ApiModel(value = "测试系统") @ApiModel(value = "测试系统")
public class SystemVo { public class SystemVo {
@ApiModelProperty(value = "主键id 也是系统编码",example = "40285a81") @ApiModelProperty(value = "主键id 也是系统编码",example = "40285a81",position = 1)
private String id; private String id;
@ApiModelProperty(value = "系统名",example = "A系统") @ApiModelProperty(value = "系统名",example = "A系统",position = 2)
private String name; private String name;
@ApiModelProperty(value = "测试用例") @ApiModelProperty(value = "测试用例",position = 3)
private List<CaseVo> cases; private List<CaseVo> cases;
} }
...@@ -154,17 +154,12 @@ Selenium测试直接运行在浏览器中,就像真正的用户在操作一样 ...@@ -154,17 +154,12 @@ Selenium测试直接运行在浏览器中,就像真正的用户在操作一样
##### 驱动程序下载地址 ##### 驱动程序下载地址
**Chrome** Firefox浏览器驱动:[geckodriver](https://github.com/mozilla/geckodriver/releases)
Chrome浏览器驱动:[chromedriver](https://sites.google.com/a/chromium.org/chromedriver/home) [taobao备用地址](https://npm.taobao.org/mirrors/chromedriver)
chromedriver:[点此打开](http://chromedriver.storage.googleapis.com/index.html) IE浏览器驱动:[IEDriverServer](http://selenium-release.storage.googleapis.com/index.html)
Edge浏览器驱动:[MicrosoftWebDriver](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)
**FireFox** Opera浏览器驱动:[operadriver](https://github.com/operasoftware/operachromiumdriver/releases)
PhantomJS浏览器驱动:[phantomjs](http://phantomjs.org/)
geckodriver:[点此打开](https://github.com/mozilla/geckodriver/releases)
**IE**
iedriverserver:[点此打开](http://selenium-release.storage.googleapis.com/index.html)
##### 驱动程序与浏览器版本关系 ##### 驱动程序与浏览器版本关系
...@@ -207,9 +202,94 @@ has changed to Firefox ≥60. ...@@ -207,9 +202,94 @@ has changed to Firefox ≥60.
IE浏览器的版本对应这个并没有找到具体所对应的版本,**一般用2.5版本**比较好一些(ie11)。 IE浏览器的版本对应这个并没有找到具体所对应的版本,**一般用2.5版本**比较好一些(ie11)。
### 相关接口(暂未更新) ### 元素定位方法
假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。
```html
<html>
<head>
<body link="#0000cc">
<a id="result_logo" href="/" οnmοusedοwn="return c({'fm':'tab','tab':'logo'})">
<form id="form" class="fm" name="f" action="/s">
<span class="soutu-btn"></span>
<input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
```
我们的目的是要定位input标签的输入框。
- 通过id定位:
```java
driver.findElement(By.id("kw"))
```
- 通过name定位:
```java
driver.findElement(By.name("wd"))
```
- 通过class name定位:
```java
driver.findElement(By.className("s_ipt"))
```
- 通过tag name定位:
```java
driver.findElement(By.tagName("input"))
```
- 通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
```java
driver.findElement(By.xpath("//*[@id='kw']"))
driver.findElement(By.xpath("//*[@name='wd']"))
driver.findElement(By.xpath("//input[@class='s_ipt']"))
driver.findElement(By.xpath("/html/body/form/span/input"))
driver.findElement(By.xpath("//span[@class='soutu-btn']/input"))
driver.findElement(By.xpath("//form[@id='form']/span/input"))
driver.findElement(By.xpath("//input[@id='kw' and @name='wd']"))
```
- 通过css定位,css定位有N种写法,这里列几个常用写法:
```java
driver.findElement(By.cssSelector("#kw")
driver.findElement(By.cssSelector("[name=wd]")
driver.findElement(By.cssSelector(".s_ipt")
driver.findElement(By.cssSelector("html > body > form > span > input")
driver.findElement(By.cssSelector("span.soutu-btn> input#kw")
driver.findElement(By.cssSelector("form#form > span > input")
```
接下来,我们的页面上有一组文本链接。
```java
<a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a>
<a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>
```
- 通过link text定位:
```java
driver.findElement(By.linkText("新闻")
driver.findElement(By.linkText("hao123")
```
- 通过partialLink text定位:
```java
driver.findElement(By.partialLinkText("新")
driver.findElement(By.partialLinkText("hao")
driver.findElement(By.partialLinkText("123")
```
关于xpaht和css的定位比较复杂,请参考:[ xpath语法](http://www.w3school.com.cn/xpath/xpath_syntax.asp)[css选择器](http://www.w3school.com.cn/cssref/css_selectors.asp)
#### 概览 ### 相关接口概览
测试用例: 测试用例:
...@@ -243,6 +323,7 @@ IE浏览器的版本对应这个并没有找到具体所对应的版本,**一 ...@@ -243,6 +323,7 @@ IE浏览器的版本对应这个并没有找到具体所对应的版本,**一
- 2020.2.24:测试用例执行结束后自动关闭浏览器。增加接口根据测试用例的id查询其所属的测试报告。预期属性改变为可选项,若没有预期属性则会低限度的以是否出现异常来判断步骤是否成功。 - 2020.2.24:测试用例执行结束后自动关闭浏览器。增加接口根据测试用例的id查询其所属的测试报告。预期属性改变为可选项,若没有预期属性则会低限度的以是否出现异常来判断步骤是否成功。
- 2020.2.25:修复Chrome驱动无法运行的问题。判断预期结果前和每个步骤执行后会等待2秒以保证结果更精准。 - 2020.2.25:修复Chrome驱动无法运行的问题。判断预期结果前和每个步骤执行后会等待2秒以保证结果更精准。
- 2020.2.28:完成测试系统这一块相关功能接口:增加测试系统的新增和查询接口;增加根据测试系统id查询测试用例的接口;增加根据测试系统id批量执行其所有测试用例的接口。 - 2020.2.28:完成测试系统这一块相关功能接口:增加测试系统的新增和查询接口;增加根据测试系统id查询测试用例的接口;增加根据测试系统id批量执行其所有测试用例的接口。
- 2020.3.2:数据结构改动:测试步骤的断言改为集合形式 ;并重新定义了断言的数据结构和判断机制。
### 遗留问题 ### 遗留问题
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论