Author: Hermione Dadheech
Organisation: Keploy
Project: Keploy Typescript/Javascript SDK
Mentors:Ritik Jain,Gourav kumar
Abstract
Keploy is an end-to-end (E2E) testing tool that harnesses real traffic to produce tests and mocks. This streamlines the testing process by generating mocks and stubs, making the testing process both simpler and more efficient.Initially I was privileged to contribute to the Javascript/Typescript SDK of Keploy. However, to broaden the platform's compatibility and make it language-agnostic, we initiated the development of Keploy's V2. This newer version aims to capture messages at the network layer.
My Contribution to Keploy
I undertook the challenge of developing a MySQL parser using Golang. This parser is designed to capture interactions between destination and client servers. It operates in two distinct modes:
Record Mode: This mode captures and generates mocks for the communications between the client and the server. Leveraging our functions, we intercept these network calls, decode them based on the binary protocol, and produce YAML files.
Test Mode: Utilizing the mocks generated in record mode, this mode facilitates communication with the client-server based on the client's requests.
I have kept a single PR for this entire project
PR-
Additionally, for testing purposes, I crafted a MySQL application in Go, supporting all CRUD operations.- https://github.com/keploy/samples-go/pull/66/files
Challenges Overcome
- Shift from JavaScript to Golang: My foundational experience lay in Javascript-based projects. Transitioning to Golang for this project was an immense learning curve.
- MySQL's Binary Protocol: This format is not intuitively readable, and the limited documentation available further accentuated the complexity.
- Engaging with the Community: I'm not used to talking a lot in large groups. So, getting involved with the community felt challenging. I tried to improve this by writing a blog about my project.
Blogs
https://hashnode.com/preview/64ba4fc2a9165f000ffd5211
What's Next
Building on the foundation of my current work, I have crafted a standalone Redis parser. My immediate objective is to refine and integrate it alongside other parsers within Keploy's suite.I'll continue working on these projects, as I find the codebase very interesting. Moreover, they've given me a solid start in the open source community.
Final Note
I’ve had a wonderful and productive summer during these 14 weeks journey and have learned plenty of things about golang, git,even Keploy through this project. My heartfelt gratitude goes out to my mentors, Ritik Jain and Gourav Kumar. They mentored me really well and were always ready to help me out. Finally, I would like to thank this amazing Keploy community!
Top comments (0)