API Automation Testing Full Course | JavaScript API Automation

Поделиться
HTML-код
  • Опубликовано: 24 авг 2024
  • НаукаНаука

Комментарии • 92

  • @sdetunicorns
    @sdetunicorns  Год назад

    Check out all the Courses - bit.ly/sdet-u-academy
    Join Mailing List - bit.ly/sdet-u-mailing-list
    If you like this video, make sure to subscribe to the channel and share this video :)

    • @user-nt7kp9vq1h
      @user-nt7kp9vq1h 2 месяца назад

      Hey I keep getting the following error:
      Exception during run: Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\tuboo\Desktop\super-api-test
      ode_modules\chai\chai.js from C:\Users\tuboo\Desktop\super-api-test\test\user.js not supported.
      Instead change the require of chai.js in C:\Users\tuboo\Desktop\super-api-test\test\user.js to a dynamic import() which is available in all CommonJS modules.
      at Object.newLoader [as .js] (C:\Users\tuboo\Desktop\super-api-test
      ode_modules\pirates\lib\index.js:121:7)
      This is 2024, i've tried everything possible, no luck still, i know it has to do with the way i Imported chai for assertion... any suggestions please?

  • @MyDIVYENDU
    @MyDIVYENDU 4 месяца назад

    Hello, can you also add jsonSchema validation in the existing project, it will be helpful.

  • @sunmoon1414
    @sunmoon1414 2 года назад

    Amazing and extremally useful video. Thank you!

  • @nadiaerdynieva8534
    @nadiaerdynieva8534 2 года назад

    Amazing tutorial!!! So clear and concise. Thank you so much, Dilpreet

    • @adam1320
      @adam1320 Год назад +1

      Huh sounds too amazing for buryat people ?

  • @hasankarimjonov8604
    @hasankarimjonov8604 2 года назад +1

    Some times I get the error "Error: Timeout of 2000ms exceeded.". If any one get the same error just add on the end of descripe block timeout(10000).
    describe('nameOfDescribe', () => {}).timeout(10000).

  • @user-ez1fj6km8y
    @user-ez1fj6km8y Год назад

    I was given an assignment for a Job Interview! I completed it with the help of this course and I got a call for the next round :) Now I am prepping for it! Thanks @dilpreetjohal

    • @sdetunicorns
      @sdetunicorns  Год назад

      That's amazing! I am glad this video helped you out to prep for your interview. Good luck in the next round :)

  • @alinamozol2385
    @alinamozol2385 2 года назад +1

    Thanks!

    • @sdetunicorns
      @sdetunicorns  Год назад

      Glad you enjoyed the content. We have created multiple courses that takes our students from ground level. If you want to become a full stack Automation engineer, Please check out the academy at: sdetunicorns.com/courses/

  • @tranquocthanh949
    @tranquocthanh949 2 года назад

    Love the content so muchhhh!

  • @MrDaz1184
    @MrDaz1184 2 года назад

    Using Async/Await section, I was getting the Error:
    User Post
    "before all" hook for "/posts":
    TypeError: (0 , _user_helper.createRandonUser) is not a function
    To fix this I had to change the user_helper export to "module.exports.createRandomUser.."
    Hope this helps anyone else that may come across the same error when following along :)
    Dilpreet, awesome content and so clear and precise! I will look further into why I needed to add module for it to work as its not the first time I've come across this, for which I come across something similar with ava (from what I've seen so far the export is to allow something to be public), but any pointers into the right direction to get a better understanding would be great, I suspect this is related to nodejs with modules and versions of ES, and certain packages (I could be wrong), but I will be sure to do some further learnings after finishing this tut. Thank you for the awesome content!

  • @mangatjass
    @mangatjass 2 года назад +1

    Can you please make a video on using the basic auth instead of bearer token

    • @sdetunicorns
      @sdetunicorns  2 года назад +1

      sure, i can add to the list :)

  • @sweetthirty2
    @sweetthirty2 Год назад

    Wow u r gr8🙏

    • @sdetunicorns
      @sdetunicorns  Год назад

      Thank you! Stay tuned for more exciting things related to API test automation.

  • @criscarlod
    @criscarlod 2 года назад +1

    Hi Bro, Is this applicable for now? the API link URL has updated to version 2

  • @mornemarais4198
    @mornemarais4198 2 года назад

    love it brew!!

  • @minakshifarakate2673
    @minakshifarakate2673 2 года назад

    When I tried to log response body it's returning as [object, object]...But all assertion get passes

  • @richardmeadows1706
    @richardmeadows1706 3 года назад +1

    Are there plans to create a video that uses Oauth 2.0 to authenticate? That would be super useful.

    • @sdetunicorns
      @sdetunicorns  3 года назад +1

      I have added that in the list, will look into creating one in the future.

  • @uniqueramya3632
    @uniqueramya3632 2 года назад

    Thank you Automation Bro. Much helpful. Can you tell how can we read the JSON file in supertest and pass it to POST request body? I have a request body that has 100 lines of data. My idea is to read the JSON file from the local drive and pass it to the post command. How can we do this?

  • @akshayhalurkar4859
    @akshayhalurkar4859 Год назад +1

    Hi Dilpreet
    How can we rerun a specific test case if it fails because of 500 issue?

    • @sdetunicorns
      @sdetunicorns  Год назад

      You can add this.retries(3); inside your it or describe block and it will retry on failure automatically.

    • @akshayhalurkar4859
      @akshayhalurkar4859 Год назад

      @@sdetunicorns i tried doing that but it still fails on the first try itself

    • @akshayhalurkar4859
      @akshayhalurkar4859 Год назад +1

      it worked. Thanks Dilpreet! I was using arrow functions for the test cases which was the reason for it failing before

    • @sdetunicorns
      @sdetunicorns  Год назад

      Glad it worked out for you.

  • @manasatweets3994
    @manasatweets3994 2 года назад

    Thanks for the detail video on API autoamtion i have limitied knowledge on this ,but with this am able to get knowledge and able to relate to the project,tq u so much can i get the reply from u having few more doubts can i ask on api automation

    • @sdetunicorns
      @sdetunicorns  2 года назад

      That's good to hear! Sure, what doubts do you have?

    • @manasatweets3994
      @manasatweets3994 2 года назад

      @@sdetunicornsI would like to connect on the existed project framework,as one here to help found ur videos

  • @mandarajgaonkar9003
    @mandarajgaonkar9003 2 года назад

    This is exactly what I wanted to implement in my project. Thanks for this video.
    Is there any documentation available for Chai and Mocha? There are few more things i need to understand before I start working.

    • @sdetunicorns
      @sdetunicorns  2 года назад +1

      You can find the docs here -
      - mochajs.org/
      - www.chaijs.com/

  • @hapham5500
    @hapham5500 2 года назад

    I got the error TypeError: Cannot read property 'gender' of undefined all time when running npm test. Can anyone help me? Thanks so much

  • @mohsinshaikh9994
    @mohsinshaikh9994 2 года назад

    I am getting following error :
    Assertion failed: new_time >= loop->time, file c:\ws\deps\uv\src\win\core.c, line 39

  • @pradeepkumar123ful
    @pradeepkumar123ful 3 года назад

    Hello daljit I have doubt .
    1. Why you use Babel here . Balel use for transfer ES6+ code to ES5 code for old browser but why you install and configure babel

    • @sdetunicorns
      @sdetunicorns  3 года назад +4

      Hi Pradeep, first off my name is Dilpreet (not daljit) :)
      Second, since we are using ES6 code such as import statements we need to use babel to support that. There are other workarounds that we can do to avoid that but simply using babel makes it easy to use both import and require statements.

    • @pradeepkumar123ful
      @pradeepkumar123ful 3 года назад

      @@sdetunicorns Thankx for cleaning my doubts it's helpful.greatfull for such awesome valuable content.

  • @satyajitligade2840
    @satyajitligade2840 2 года назад

    People say that learn Java for API Automation testing most of companies use that. What should I do? Do I need to learn JavaScript for API automation orJava?

    • @sdetunicorns
      @sdetunicorns  2 года назад +1

      It's not the language that matters, it's about understanding the concepts behind API Automation and learning best practices. Once you know that, you can pick any language of your choice to automate it.

  • @etrajnime1791
    @etrajnime1791 3 года назад

    I'm very new to testing, and they told me to learn more about performance, load and stress testing. What do you suggest me to do?!
    Can you explain it in short terms what it is, what are the best tools to use etc... I'm more in javascript langugage. Thanks!

    • @sdetunicorns
      @sdetunicorns  3 года назад +1

      Hey, you can look into JMeter to do performance and load testing. It's quite easy to setup and there are multiple resources out there already as well.

  • @kalyanchakravarthy7904
    @kalyanchakravarthy7904 2 года назад +1

    @23:15 >> seeing this error 'Uncaught AssertionError: .empty was passed non-string primitive undefined'

  • @swatikakkar4967
    @swatikakkar4967 2 года назад

    is deserialization of response possible in this framework? Like in Java Rest Assured.

    • @sdetunicorns
      @sdetunicorns  2 года назад

      No that is not required here as you can directly access and manipulate JSON data with JavaScript.

  • @hasankarimjonov8604
    @hasankarimjonov8604 2 года назад

    Thanks for the video Dilpreet.
    When I write blocks it or descripe(on vs code) there is not pasted automatically brackets or other symbvols. How to correct set up plugin?

    • @rob6rr
      @rob6rr 2 года назад

      I had the same problem. I think the video needs a bit more details regarding the setup steps and any extensions that might be needed.
      The following worked for me to fix this.
      In vs code. View >extensions
      Add the following extensions
      Mocha snippets
      Es6 mocha snippets
      Once these are added the following statements should complete with intellisense.
      dsc - enter: completes a describe block
      It - enter: completes an it block
      Describe and it - enter: completes a describe and it block in one operation

  • @debjanighosh5947
    @debjanighosh5947 Год назад

    Hi Dilpreet, Thanks a ton for this amazing video. I have one question here, I have to also define header things as we define in postman tool. so where shall I define them in the user file ?
    Thanking you in advance

    • @sdetunicorns
      @sdetunicorns  Год назад

      In Supertest, you can define headers for a request using the .set() method. This method sets a header value for the next request to be sent. You can chain multiple .set() methods to set multiple headers for the same request. You can find examples here - www.npmjs.com/package/supertest

    • @debjanighosh5947
      @debjanighosh5947 Год назад

      @@sdetunicorns Thanks for your prompt reply. I will do the changes and will let you know about this.

    • @debjanighosh5947
      @debjanighosh5947 Год назад

      @@sdetunicorns I have set the header value as return request
      .post('loginUser')
      .set(('Accept','application/json'),('Content-Length',[500]),('Host',[600]))
      .send(data)
      .then((res) => {
      console.log(res.body.accessToken);
      in postman(Header) : Content-Type: application/json
      Content-Length:
      Host:
      Error in Javascript: TypeError: Header name must be a valid HTTP token ["application/json"]
      please let me know what is wrong I am making here

  • @archanas8463
    @archanas8463 Год назад

    Is the github link removed from description?

    • @sdetunicorns
      @sdetunicorns  Год назад

      Updated - github.com/dilpreetj/JavaScript-API-Automation-Tests

  • @Farquad123
    @Farquad123 Год назад

    In the Async / Await section, my text is passing but it’s say “user_id : “must not be a number”. Has anyone else experienced this? What’s the fix?

    • @sdetunicorns
      @sdetunicorns  Год назад

      You will likely need to parse the user_id to string and then pass it to the API.

    • @Farquad123
      @Farquad123 Год назад

      @@sdetunicorns how would I go about that? I’m super new to Java and API testing

    • @Farquad123
      @Farquad123 Год назад

      @@sdetunicorns parse.string(“user_id”)?

  • @sf4a220
    @sf4a220 3 года назад

    Hi Bro, How to make Curl request I need to use Curl . With super test. And I am new to Api testing .can you help me

    • @sdetunicorns
      @sdetunicorns  3 года назад +1

      Hi, curl request is simply an HTTP request which you can do with SuperTest itself. You can watch this course to learn how to make different kinds of HTTP request.

  • @K_H-Channel
    @K_H-Channel 2 года назад

    Hi, Could you please tell me what I need to do to create this framework in TypeScript? Thank you

    • @sdetunicorns
      @sdetunicorns  2 года назад

      All these libraries are supported with TS as well, so you don't need to do anything different for TS.

    • @K_H-Channel
      @K_H-Channel 2 года назад

      @@sdetunicorns Do I still need babel with ts? What do I need to install differently to do this in ts? Thanks.

    • @sdetunicorns
      @sdetunicorns  2 года назад

      Well that depends on your project needs but in general you would not use Babel, just TS compiler is sufficient.

  • @mohamedfazil9237
    @mohamedfazil9237 2 года назад

    How can i use axios instead of super test

    • @sdetunicorns
      @sdetunicorns  2 года назад +1

      Install axios and everything else will pretty much same

  • @mohammadfaisal8741
    @mohammadfaisal8741 2 года назад

    I am getting an error on post request. it shows authentication failed

    • @sdetunicorns
      @sdetunicorns  2 года назад +1

      Try to do these steps in postman to make sure it works fine there. If it does then you can review your code and see what you are doing wrong.

  • @thienphongvu2452
    @thienphongvu2452 2 года назад

    Does anyone has issue with npm: command not found ? I am very new with Jenkins

    • @sdetunicorns
      @sdetunicorns  2 года назад

      That's because you need to get NodeJS plugin installed in your Jenkins first and then you will be able to run the npm command.

  • @rekhaaswani562
    @rekhaaswani562 Год назад

    Can you please share git hub repo for this framework.

    • @sdetunicorns
      @sdetunicorns  Год назад

      There you go - github.com/automationbro/JavaScript-API-Automation-Tests

    • @rekhaaswani562
      @rekhaaswani562 Год назад

      @@sdetunicorns Thanks alot !!!!

  • @ranjitumakanthan994
    @ranjitumakanthan994 3 года назад

    Hi @39.40 I am getting error as TypeError: res.body.data.forEach is not a function . Any idea Why this error occurs? I followed all your steps

    • @sdetunicorns
      @sdetunicorns  3 года назад +1

      You can try to print out what you are getting for - res.body.data and troubleshoot from there

    • @ranjitumakanthan994
      @ranjitumakanthan994 3 года назад +2

      @@sdetunicorns Got it, I changed the res.body.data to Array.from(res.body.data) and now that works. Thanks for your response

  • @vidmeelabs9688
    @vidmeelabs9688 2 года назад

    Hi, I ran my test on GET /users. I see my test passing but cannot see response body :(
    My response looks like :
    null
    {}

    • @vidmeelabs9688
      @vidmeelabs9688 2 года назад

      Do you know the reason why my response body is blank ?

    • @sdetunicorns
      @sdetunicorns  2 года назад

      can you please share your entire request url?

  • @Bored-Panda
    @Bored-Panda 2 года назад

    Hi Dilpreet,
    Thanks for the video. I need to implement my framework so that we can run the scripts in different environments by providing an environment parameter through cli or any other way. Would you know how this can be implemented in supertest + mocha. I am using the same stack as your tutorial.
    Thanks in advance.

    • @sdetunicorns
      @sdetunicorns  2 года назад +3

      Hi, you can use process.env.BASE_URL and then through CLI you can pass in your BASE_URL dynamically

    • @Bored-Panda
      @Bored-Panda 2 года назад

      @@sdetunicorns Thanks for your response!

  • @piyushmathpal4244
    @piyushmathpal4244 3 года назад

    Can you please make a video on API testing using AXIOS library?

    • @sdetunicorns
      @sdetunicorns  3 года назад +3

      Sure, I will add that to the list.

  • @vijaymanda22
    @vijaymanda22 Год назад

    In the HTTP get methods. expect(res.body.data.id) , it's not working . Supertest not recognising '.data' and getting this error 'TypeError: Cannot read properties of undefined (reading 'id')' .

    • @sdetunicorns
      @sdetunicorns  Год назад

      Hello, try to print out what you are getting from res.body as that's probably not returning the right response which is causing this error for you.

  • @mangatjass
    @mangatjass 2 года назад

    if i try using the helper folder , I get an error ,
    Is there a plug in that I am missing
    Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/jaspreetmangat/Repo/camundatest/helper/user_helper' imported from /Users/jaspreetmangat/Repo/camundatest/test/task.js

    • @mangatjass
      @mangatjass 2 года назад

      I got it , Import requires the file extension .

  • @mangatjass
    @mangatjass 2 года назад

    If I use expect(res.body.data).to.be.not.empty;
    I get below error
    Uncaught AssertionError: .empty was passed non-string primitive undefined

    • @sdetunicorns
      @sdetunicorns  2 года назад

      Try to print out what you are getting back as part of `res.body.data` and make sure you have proper data being returned

    • @mangatjass
      @mangatjass 2 года назад

      @@sdetunicorns the response body is as below
      [
      {
      "id": "295ab6e5-4ec4-11ec-8138-0a126fbd7918",
      "name": "Verify checklist",
      "assignee": null,
      "created": "2021-11-26T14:21:35.601+0000",
      "due": null,
      "followUp": null,
      "delegationState": null,
      "description": null,
      "executionId": "295a8fc1-4ec4-11ec-8138-0a126fbd7918",
      "owner": null,
      "parentTaskId": null,
      "priority": 50,
      "processDefinitionId": "defaultProductFlow:29:e3d70e16-4dd4-11ec-8138-0a126fbd7918",
      "processInstanceId": "295a8fc1-4ec4-11ec-8138-0a126fbd7918",
      "taskDefinitionKey": "verifyhecklist",
      "caseExecutionId": null,
      "caseInstanceId": null,
      "caseDefinitionId": null,
      "suspended": false,
      "formKey": null
      }
      ]
      Also I am stuck at another point , in some cases I will only get
      []
      But cannot verfiy this "if (expect(res.body.data).to.be.null == true)
      {
      console.log("body not found");}"
      I get
      AssertionError: expected undefined to be null
      Also tried using expect(res.body.data).to.be.undefined but no luck V