借用spring的aop思想处理接口测试中的加签
公私钥的加密加签是一种常见的安全策略,对于功能测试人员,在进行接口测试时会频繁的使用加密和加签,所以在设计测试框架时就可以借助AOP的思想将这一部分同业务接口进行分离。
这里涉及到几个术语:
公私钥:一般业务的上下游,都会各自持有一对公私钥,公钥与业务关联方进行交换,私钥仅自己保存;
加密:发送方利用接收方提供的公钥对要发送的明文报文进行加密;相应的解密,接受方利用自己持有的私钥对密文进行解密;
加签:发送方首先利用hash函数得到报文摘要A,并利用自己的私钥对报文摘要进行加密,得到的就是报文对应的数字签名,将报文和签名一并发送给接受方;相应的解签,接收方利用同一个hash函数得到报文摘要B,并利用发送方的公钥对数字签名进行解密得到发送方的摘要A,两个摘要一比对就能确保信息的安全性;
AOP 面向切面编程(Aspect Oriented Program),切面一般指非业务功能,例如日志,事务管理等。在面向切面编程中,核心功能和切面功能分别进行开发,相互独立,根据实际使用场景把切面功能和核心业务功能编织在一起就叫AOP。
以天猫商城为例,核心模块包括用户登陆、加购、支付等,切面功能有日志、事务管理、流量统计等,这两者可以独立开发互不影响,如果登陆用到了日志功能,再将两者编织在一起。
回归到接口测试,我们的核心目的是确保业务接口的逻辑及出参符合预期,加签等并非我们的主要关注点,所以加签就是接口测试系统中的一个切面功能,后续文章将提供实际的代码实现。