接口测试
程序接口:可以看作是程序模块接口,具体到程序中一般就是提供了输入输出的类,方法或函数。对于程序接口的测试,一般需要使用于开发程序接口相同的编程语言,通过对类,方法和函数的调用,验证其返回结果是否正确来进行测试。
协议接口:指系统通过不同的协议提供的接口,例如使用HTTP/SOAP协议等。这种类型的接口对底层代码做了封装,通过协议的方式对外提供调用。因不涉及底层程序,所以,一般不受编程语言的限制。可以通过接口测试工具或其他编程语言进行测试。
编程语言中的接口
1.java中的interface。
1).接口在java编程语言中是指一个抽象类型,是抽象方法的集合,通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
2).接口不是类,它们是不同的概念。类描述对象的属性和方法。接口包含类要实现的方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
3).接口的特点在于它只定义规范,而不管具体的实现,具体实现由接口的实现者完成。
1.1.定义接口,IAnimal.java
package test.demo;
public interface IAnimal {
public String Behavior(); // 行为方法,描述各种动物的特性
}
1.2.实现动物接口(dog类)
package test.demo;
// 类:狗
public class Dog implements IAnimal {
@override
public String Behavior() {
String ActiveTime = '我晚上睡觉,白天活动';
return ActiveTime;
}
}
1.3.实现Cat类动物接口。
package test.demo;
// 类:猫
public class Cat implements IAnimal {
@override
public String Behavior() {
String ActiveTime = '我白天睡觉,晚上捉老鼠';
return ActiveTime;
}
}
1.4.测动物接口的具体实现(Dog类和Cat类)。
package test.demo;
public class Test {
public static void main(String[] args) {
// 调用dog和cat的行为
Dog dog = new Dog();
Cat cat = new Cat();
System.out.print(dog.Behavior());
System.out.print(cat.Behavior());
}
}
上述的测试并不是测试的接口,因为接口本身只是抽象的定义,并没有可测试性,这里所测的是已经实现了接口的类。
2.Python中的Zope.interface.
在python语言中也有interface的概念,虽然python本身并不提供interface的创建和使用,但是可以通过第三方扩展库来使用类似interface的概念,这里选用Zope.interface库。
pypi地址
2.1.第一个普通的例子,demo.py文件代码实现如下:
class Host(object):
def goodmorning(sefl, name):
return "Good morning, %s!" % name
if __name__ == '__main__':
h = Host()
hi = h.goodmorning('zhangsan')
print(hi)
2.2.在上述demo.py的基础上使用interface(只使用python3),interface_demo.py文件的代码实现如下:
from zope.interface import Interface
from zope.interface.declarations import implementer
# 定义接口
class Host(Interface):
def goodmorning(self,host):
@implementer(IHost) # 继承接口
class Host:
def goodmorning(self, guest):
return "Good morning, %s!" % guest
if __name__ == '__main__':
p = Host()
hi = p.goodmorning('Tom')
print(hi)
请正确区分进行接口测试时测的接口同编程语言中接口的区别。不太懂的,可以自行百度。