1. python+unittest测试框架
在写测试类以及测试用例时要规定一个命名习惯,一般测试类可以以Test开头,也可以以Test结尾。测试用例一般是以test开头。
import unittest #导入unittest包
#创建测试类:从unittest.TestCase继承
classRomanNumeralConverterTest(unittest.TestCase):
def setUp(self): #初始化测试环境
def tearDown(self): #还原测试环境
def test_(self):
#执行测试用例
if __name__ == "__main__":
unittest.main()
注:setUp和tearDown可以选择是否需要
#将测试用例执行起来
f __name__=="__main__":
# loadTestsFromTestCase : 从ebloodLoginAndroidTest类中寻找测试用例
# TestLoader用来将测试用例加入到测试组中
suite =unittest.TestLoader().loadTestsFromTestCase(RomanNumeralConverterTest)
# TextTestRunner是来执行测试用例的;verbosity标识日志等级
unittest.TextTestRunner(verbosity=2).run(suite)
下图是Appium python 框架图片
2.java+TestNg测试框架
1.TestNg的基本注解
注解 | 描述 |
@BeforeSuite | 注解的方法将只运行一次,在此套件中的所有测试运行之前运行 |
@AfterSuite | 注解的方法将只运行一次, 在此套件中的所有测试运行之后运行 |
@BeforeClass | 注解的方法将只运行一次先行先试在当前类中的方法调用, |
@AfterClass | 注解的方法将只运行一次后已经运行在当前类中的所有测试方法 |
@BeforeTest | 在运行属于<test>标签内的类的任何测试方法之前运行 |
@AfterTest | 在运行属于<test>标签内的类的所有测试方法都已运行之后 |
@BeforeGroup | 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用 |
@AfterGroup | 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用 |
@BeforeMethod | 注解的方法将每个测试方法之前运行 |
@AfterMethod | 被注释的方法将被运行后,每个测试方法 |
@DataProvider | 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。 该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字 |
@Factory | 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[] |
@Listeners | 定义一个测试类的监听器 |
@Parameters | 介绍如何将参数传递给@Test方法 |
@Test | 标记一个类或方法作为测试的一部分 |
2.相关组件解释
Appium client:使用WebDriver库或者基于WebDriver的扩展库(统称Appium客户端库)编写的测试用例
Appium server:是http服务器,专门接收从Appium client发送过来的命令,同时,他也是bootstrap的客户端。它接收到客户端命令后,需要把这些命令发送给bootstrap,bootstrap接收到命令并转换为UIAutomator可以执行的命令
Selenium driver:即WebDriver,WebDriver是一个用来进行web自动化测试工具,没有和任何测试框架进行绑定。它提供一系列的API对web应用的中界元素进行定位、模拟用户操作的API,底层利用JSON通过HTTP与服务器进行交互。Appium扩展了WebDriver API,更实用与移动应用程序的测试。
Bootstrap:是Appium运行在安卓目标测试机器上的一个UIAutomator测试脚本,该脚本所做的事情是在目标机器开启一个socket服务器来把Appium从PC端发过来的命令发送给UIAutomator来执行处理
注:默认测试用例的执行顺序是按照测试用例名称的首字母顺序执行的,因此在编写测试用例的时候一定要注意用例的逻辑执行顺序,否则会报错。
3.Appium其他知识点
关键字 | 描述 | 实例 |
automationName | 你想使用的自动化测试引擎 | Appium (默认) 或 Selendroid |
platformName | 你要测试的手机操作系统 | iOS, Android, 或 FirefoxOS |
platformVersion | 手机操作系统版本 | 例如:7.1, 4.4 |
deviceName | 使用的手机名称或模拟器名称 | iPhone Simulator, |