进入到项目开发的后期,测试变得尤为重要。模拟用户使用场景,根据测试用例建立自动化测试就成为了下一个开发目标。
期间也找了不少的测试工具,针对于Web Api比较简单的有PostMan或者嵌入项目中的Web Api Test Client甚至于 Fiddler,但这些都不足以进行连续的测试。一些老牌的测试工具,如loadrunner、QTP等又过于臃肿,且重点在于网站测试,快速掌握又只能以录制为主。既然使用visual studio开发的web api,那么使用visual studio自带的测试项目不是能够更好的融合吗,而且有了编程基础,自动化测试会做得更好。
其实微软提供了丰富的测试框架,从单元测试到顺序测试、性能测试和压力测试,之前之所以排斥不用,还是因为先入为主觉得太复杂,既然单元测试能够满足需求,就没必要再深入研究。
如果测试人员局限于于写测试用例,UI功能测试,那基本上测试生涯也就止步不前。如果测试人员开始着手敲敲代码,就会发现原来测试领域也有很大的一片天地。
以下项目主要实现了对api的自动化测试和压力测试,涉及到参数化、提取规则和验证规则。
微软提供的测试api:http://northwindapi.cloudapp.net
1、建立项目
2、新建web性能测试
3、项目进行配置,停止录制
- 添加web服务请求;
- 添加上下文参数,上下文参数类似于公共变量,可以在所有测试中使用,而在测试中,如果要使用到上下文参数,使用{ {参数名}}即可。上下文参数对应的代码为e.WebTest.Context,接下来作动态参数时会讲到;
- 添加验证规则,此处添加的验证规则是全局的验证规则,比如访问时间不能超过5s等
- 添加自定义的web测试插件,web测试插件可以修改全局的访问地址、参数、变量等
4、配置请求并测试
4.1、添加上下文参数
Host= http://northwindapi.cloudapp.net
ParaId=0
4.2、修改web请求Url:{
{Host}}/api/Seminars,请求修改为Get
运行测试,查看结果
5、请求参数的修改
方法1:添加QueryString
测试结果,将只返回SeminarId为1的数据
方法2:使用全局上下文参数
方法3:添加WebTestRequestPlugin,使用代码改变请求参数,使用Plugin改变参数可以实现参数的计算
public class QSPlugin : WebTestRequestPlugin