一:
- github使用
- 为什么:开源项目集中的代码库
- 功能介绍:
- 记录多个版本
- 查看历史操作
- 多端共享代码,自动合并
- 使用
- github
- git clone https://github.com/linxiaojinjin/hhhhhh.git从github仓库下载到本地
- cd hhhhhh 进入hhhhhh 工程
- 更新代码 1.txt
- git status 查看1.txt状态
- git add 1.txt
- git status
- git commit -m "增加" 引号内为提交备注信息
- git push 提送
- 注意:openssh
- 账号:root
- 密码:root
- 注意:openssh
- 其它命令:
- git branch:查看本地+远程分支
- git branch -a:查看所有远程端分支
- git checkout -b branch1本地创建新分支 (远程端并没有)
- git push --set-upstream origin branch1提交到新分支上
- git checkout master切换分支
- git log --pretty=oneline :显示从最近到最远的提交日志
- git reset --hard id:根据 id 回退到指定的版本
- git push origin HEAD --force:推送到本地到远程仓库
- git reflog:查看命令操作的历史
- TestNG:
- 比Junit涵盖功能更全面的测试框架
- junit适合隔离性较强地单元测试
- TestNG适合复杂的集成测试
使用:
1 打开clone文件
2 设置maven model
3 使用Testng
导入依赖
创建SuiteConfig类 (里面写有测试套件)
创建测试用例类和方法
编写suiteng.xml配置文件
其它注解:
注解 | 描述 |
@BeforeSuite | 在所有测试运行前运行 |
@AfterSuite | 所有测试运行后运行 |
@BeforeClass | 当前类的第一个测试方法调用前运行 |
@AfterClass | 当前类的所有测试方法调用后运行 |
@BeforeTest | 注解的方法将被运行之前的任何测试方法属于内部类的 标签的运行。 |
@AfterTest | 注解的方法将被运行后,所有的测试方法,属于内部类的标签的运行。 |
@BeforeGroups | 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。和@Test(groups = "name")一起使用 |
@AfterGroups | 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。 |
@BeforeMethod | 在每个测试方法运行之前执行一次 |
@AfterMethod | 在每个测试方法运行之后执行一次 |
@DataProvider | 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。 该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。 |
@Factory | 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。 |
@Listeners | 定义一个测试类的监听器。 |
@Parameters | 介绍如何将参数传递给@Test方法。 |
@Test | 测试方法 |
@Test(enabled = false) | 执行时忽略该测试方法 |
@Test(groups = "name") | 分组测试方法 |
大致执行顺序
- beforesuite
- beforetest
- beforeclass
- beforemethod
- test case 1
- aftermethod
- beforemethod
- test case 2
- aftermethod
- afterclass
- aftertest
- aftersuite
- 组测试在类中运行:
在测试用例类上加@Test(groups = "name")标签
在xml文件中加标签
2 异常测试
场景:传入某些不合法的参数,程序抛出了异常
3 依赖测试@Test(dependsOnMethods = {""})
@Test
public void test1(){
System.out.println("test11");
// throw new RuntimeException();
}
@Test(dependsOnMethods = {"test1"})
public void test2(){
System.out.println("test22");
}
test2执行必须依赖test1执行成功
4 参数化测试(通过配置文件,给测试函数参数传值)
package ngtest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Student {
@Parameters({"name","age"})//表示该函数使用的参数由testng.xml提供,第一个参数是xml中的name参数,第二个是age参数
@Test
public void whoami(String name,String age){
System.out.println("I am "+name+","+age+" years old.");
}
}
配置文件:
(
4 参数化测试(通过@DataProvider(name = "name"))
@Parameters({"name","age"})//表示该函数使用的参数由testng.xml提供,第一个参数是xml中的name参数,第二个是age参数
@Test(dataProvider = "data")
public void whoami(String name,int age){
System.out.println("I am "+name+","+age+" years old.");
}
@DataProvider(name = "data")
public Object[][] providerData(){
Object[][] o = new Object[][]{
{"zhangsan",10},
{"lisi",30}
};
return o;
}
注意:此时必须执行testng.xml。而不能执行java文件