基于Cactus的接口自动化

来源:互联网 发布:用php做99乘法表 编辑:程序博客网 时间:2024/05/22 03:47
  今晚给广大测试兄弟培训的一下我们API的接口自动化(API无页面),现在将公司的接口自动化框架总结如下,由于公司可恶的信息安全制度,所以不能提及公司名称已经公司内部软件,所以只能针对开源部分进行讲解。
  至于什么是Cactus,下面是来自官网的权威解释:
  Cactus is a simple test framework for unit testing server-side java code (Servlets, EJBs, Tag Libs, Filters, ...).
The intent of Cactus is to lower the cost of writing tests for server-side code. It uses JUnit and extends it.
Cactus implements an in-container strategy, meaning that tests are executed inside the container.

  为了实现对容器(服务端)的接口测试,我们需要解决一下问题:
1、如何使本地客户端调用到服务端的接口?
2、如何给接口传参
3、由于本地客户端使用的是C++开发的,而服务端代码是Java代码,如何让解决C++与Java代码之间的交互
4、如何确定接口的正确性
为了解决第一个问题,我们在本地为每个TestCase定制了一种Java代码,每个TestCase的beginXXX通过向服务端发送HTTP请求能够调用到服务端每个TestCase的testXXX方法,在TestCase中调用开发的接口。
为了解决第2、3个问题,我们引入了Json这种数据格式,因为Json可以跨语言进行数据交互,我们可以将接口入参对象转化为Json格式,然后C++将这个Json串传递给本地定制的TestCase代码,本地TestCase再把这个Json串通过HTTP求情发送到服务端,在服务端,再将Json串转换为入参对象,这样就解决了不同语言之间参数传递的问题,同时还能将参数传给服务端接口,但是这里有个问题,如何将对象转换为Json,在服务又如何将Json转为对象呢??为了解决这个问题,我们引入了Google公司一个开源项目Gson,Gson可以实现对象和Json串之间的相互转换(关于Gson,大家可以去官网查看),
由于引入了Json这种数据格式,在比较的时候,都采用比较Json串的方法
原创粉丝点击