首页 > 编程知识 正文

api接口开发测试平台,写脚本测试api性能

时间:2023-05-05 12:57:57 阅读:216425 作者:2487

Pandaria从0.3.0开始支持GraphQL API的自动化测试。目前只支持Query和Mutation。

配置URL

使用Pandaria对RESTFul API进行测试时,我们会在.feature文件的顶端配置当前feature工作目录和基本的API的Endpoint。如:

Background: * dir: features/rest-api-test * base uri: http://localhost:10081/your-rest-api复制代码

这样在测试中可以使用相对路径来发送请求:

* uri: /users/me* send: GET* status: 200* verify: '$.username'='jakim'* verify: '$.age'=18复制代码

不同与REST, GraphQL对于Query和Mutation通常只有一个唯一的Endpoint, 使用base uri关键字可以配置这个Endpoint。如:

Background: * dir: features/graphql-test * base uri: http://localhost:10081/graphql复制代码 GraphQL Query

配置好基本目录后,就可以编写GraphQL的测试了,使用graphql关键字来输入查询语句。

Scenario: basic query without specify operation name * graphql: """ query bookById($id: String){ book(id: $id) { title isbn author { name } } } """ * variables: """ { "id": "1" } """ * send * verify: '$.data.book.title'='CSS Designer Guide' * verify: '$.data.book.isbn'='ISBN01123' * verify: '$.data.book.author.name'='someone'复制代码 上述代码首先配置了一段GraphQL的查询语句,根据id查询book的title, isbn,author,以及author的name字段。这段查询语句需要一个参数,使用 variables关键字,配置GraphQL的参数。send关键字发送查询到GraphQL服务器端。verify关键字对查询结果进行验证。variables不是必须的,如果查询语句中不需要输入参数,可省略。 GraphQL Mutation

Mutation与Query的操作一模一样,只需要将Query语句换成Mutation语句即可,不赘述。

将GraphQL语句放在文件中

使用Pandaria进行REST测试时,为了提高可读性,我们会将请求体放在文件中如:

* uri: http://localhost:10080/users* request body: requests/user.json* send: POST* status: 200* verify: '$.id'='auto-generated'* verify: '$.username'='jakim'* verify: '$.age'=18复制代码

同样的,我们也可以将GraphQL的语句(和/或)GraphQL变量放在文件中,来提高测试用例的可读性,如:

* graphql: query_book_by_id.graphql* variables: css_designer_guide.id.json* send* verify: '$.data.book.title'='CSS Designer Guide'* verify: '$.data.book.isbn'='ISBN01123'* verify: '$.data.book.author.name'='someone'复制代码 GraphQL语句中包含多个操作

同一个GraphQL文件支持包含多个GraphQL操作,可以通过operation关键字来指定需要执行的操作,如:

Scenario: query with operation name * graphql: query_book_by_id.graphql * variables: css_designer_guide.id.json * operation: bookById * send * verify: '$.data.book.title'='CSS Designer Guide' * verify: '$.data.book.isbn'='ISBN01123' * verify: '$.data.book.author.name'='someone'复制代码

更多用法参考Pandaria官方文档

转载于:https://juejin.im/post/5d2360136fb9a07ebb05583b

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。